4

我期待一连串的反对票,但尽管如此,我想知道你们的想法。

如果你有,

<div>
    <p>Paragraph1</p>
    <p>Paragraph2</p>
</div>
<div>
</div>

从字面上看,我希望div:first-child选择 for,<p>Paragraph1</p>因为<p>Paragraph1</p>它是的第一个子节点div 但是,正如我们所知,它选择 html 中的第一个,简单地调用它或者也许div更有意义吗?:first:first-sibling

4

4 回答 4

3

jQuery 有一个扩展的选择器::first,请注意,问题:first在于它在第一次匹配后停止查找元素,不像:first-child这里的示例为什么:first不是一个好名字。

于 2013-03-07T22:32:25.407 回答
2

根据Mozilla 的参考文档(强调我的):

CSS 伪类是添加到选择器的关键字,用于指定要选择 的元素的特殊状态

伪类是现有选择器的修饰符。所以结果必须是现有选择器匹配的子集。因此,div:first-child不能返回除 a 之外的任何内容div

于 2013-03-07T22:35:58.827 回答
0

至于为什么不:first因为首先与什么有关?整个页面的第一个 div?就在这一节?:first-child提供上下文,无论是文档、div 还是 ul。任何。

您所引用的“字面意思”实际上似乎是div > :first-child因为您正在考虑在 div 中选择一个元素。

div:first如果从字面上看,这意味着您遇到的第一个 div 。所以它总是页面上的第一个 div。

div:first-child字面意思是“一个 div,它是它的父级的第一个子级” 你需要记住,伪类描述了它们应用到的元素。

于 2013-03-07T22:41:10.667 回答
0

:first-child 表示它是其父母的第一个孩子。我认为 :first 不够具体, :first-sibling .... 这似乎太等同于 first-child,因为两者都非常模棱两可。

于 2013-03-07T22:32:09.223 回答