【发布时间】:2011-03-13 07:28:24
【问题描述】:
除非不应该这样做,但我似乎无法让 nth-child 确认类选择器。
我说另一个 div 中有 4 个 div,所有不同的类和 id。我需要选择具有所述类的 div 的第一个实例。例如:
#content .foo:nth-child(1) { margin-top: 0; }
显然再次使用first-child 来获得相同的效果,但它不会影响任何 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 示例,我尝试过 nth-of-type 也是这样的:
#content .table:nth-of-type(1) { margin: 0 }
同样,它只在我说 nth-of-type(3) 时才会响应。
编辑:
我已经为我在这里遇到的问题设置了一个工作示例:http://jsfiddle.net/aHwS8/
【问题讨论】:
-
也许您应该向我们展示实际 HTML 文档的相应部分。
-
@gumbo 确定,我刚刚编辑了它.. :)
-
但是(至少在这个例子中)你只有一个具有 table 类的元素。
-
@gumbo 是的,但是“n”只响应它在容器 div 中的数字,而不是它在 .table 列表中的数字。我认为我对这些伪选择器的理解有点偏离。 @Jake 描述了我正在尝试做的完美“o 你想要的是第一个 div 类 .foo 不管它是哪个孩子。但是这个选择器所做的是第一个 div 如果它也有类 .foo”将会有再次点击谷歌。感谢您的帮助!
-
是的,
:nth-of-type()和:nth-child()在计数时都只考虑元素类型或仅考虑元素。
标签: css css-selectors