【发布时间】:2012-07-19 13:14:20
【问题描述】:
用于图标的<i> 和第一个<div> 的子级应该有一个大图标。任何<div> 的任何其他<i> 子(但不是第一个)都应该有一个中等大小的图标:
<div class="row list-item">
<div class="span1">
<i class="icon-user"></i>
</div>
<div class="span3">
<div>
<a href="#">Main Link</a> <i class="icon-male"></i>
</div>
<i class="icon-mail"></i> <a href="#">Link 2</a>
<i class="icon-mobile"></i> <a href="#">Link 3</a>
</div>
</div>
相关CSS:
.list-item > div:first-child {
text-align: center;
}
.list-item i[class^="icon-"], .list-item[class*=" icon-"] {
text-shadow: 3px 1px 2px rgba(0, 0, 0, 0.2);
}
/* Only i with icon-* class, where div is first child */
.list-item > div:first-child > i[class^="icon-"],
.list-item > div:first-child > i[class*=" icon-"] {
font-size: 60px;
line-height: 80px;
}
/* Any i with icon-* class, where div is not first child */
.list-item > div:nth-child(1n+1) > i[class^="icon-"],
.list-item > div:nth-child(1n+1) > i[class*=" icon-"] {
vertical-align: middle;
font-size: 24px;
line-height: 24px;
}
所以我在公式nth-child(an + b) 中使用了偏移量,b = 1。即偏移量为 1,因此应跳过第一个 <div>。但是第一个大图标与最后一条规则匹配。我错过了什么?
【问题讨论】:
-
你到底在测试什么?使用您提供的 HTML,您的第 n 个孩子设置的属性无关紧要。
-
@Ana 你在说什么?
-
首先,您需要在
<i>标签之间添加一些文本,以便测试您提供的CSS。其次,您的 HTML 中没有任何内容可以匹配.list-item > div:nth-child(1n+1) > i[class*=" icon-"] -
@Ana 文本(实际上是一个图标字体)在
content之前被另一个 CSS 规则(未显示)附加到任何<i>。
标签: css css-selectors