除非它不应该,但我似乎无法让第n个孩子承认类选择器。
我在另一个div里面说了4个div,所有的类和ids。我需要用该类选择一个div的第一个实例。例如:
#content .foo:nth-child(1) { margin-top: 0; }
而且显然与第一个孩子一样得到同样的影响,但它不影响任何div。
现在,如果我想强制它使用该div,我可以这样做:
#content .foo:nth-child(3) { margin-top: 0; }
它只是发生在#content中的第三个div,这是无意义的,因为我需要获得与该类的任何东西的第一个实例。
<div id="content"> <div id="action-bar"> </div> <div id="message"> </div> <div class="table"> </div> <div class="clear"> </div> </div>
以下是HTML的示例,我已经尝试过类似于此类型:
#content .table:nth-of-type(1) { margin: 0 }
再次,只有当我说nth-type(3)时才回应。
编辑:
我已经建立了我在这里遇到的问题的工作示例:http://jsfiddle.net/aHwS8/
解决方法
尝试使用
:nth-of-type()
pseudo-selector:
#content .foo:nth-of-type(1) { margin-top: 0; }
请注意:nth-type()对具有相同名称的元素进行计数。所以.foo:nth-of-type(1)将不会使用类foo选择第一个元素,而是使用同一个名称分组的元素列表中的第一个元素。如果你有这样的文件:
<div> <i class="foo">1</i><i>x</i><i class="foo">2</i> <b class="foo">3</b><b>x</b><b class="foo">4</b> </div>
.foo:nth-of-type(1)将选择元素< i class =“foo”> 1< / i>和< b class =“foo”> 3< / b>因为两者都是自己的类型中的第一个。