2013-03-07 133 views
4

我期待着一连串的反对票,但是,我想知道你们在想什么。为什么叫做第一胎?

如果你有,

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

字面理解,我希望div:first-child选择为<p>Paragraph1</p>,因为<p>Paragraph1</p>div 第一个子节点但是,我们知道,它在html选择第一div ,简单地称之为:first:first-sibling是否更有意义?

+2

这听起来像是一个怪胎Seinfeld的例程!爱它! – 2013-03-07 22:33:31

回答

3

jQuery有扩展的选择::first,只要注意与:first的问题是,它停止后的首场比赛找到的元素,不像:first-child所以这里的例子,为什么:first不是一个好名字。

0

:第一个孩子意味着它是其父母的第一个孩子。我认为:首先是不够具体,并且:第一个兄弟姐妹......似乎与第一个孩子相当,因为两者都很模糊。

2

根据Mozilla's reference documentation(重点煤矿):

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

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

+0

非常有意义,但为什么不把它称为':first'?看起来很奇怪,他们添加了-child。 – dezman 2013-03-07 22:37:22

+0

就像'a:hover'并不意味着'a>:hover'和'div:before'不会引用div之前发生的任何事情。所有的伪装都是这样工作的,它也不例外。 – idrumgood 2013-03-07 22:37:51

+0

至于为什么不是':第一个',因为首先涉及到什么?整个页面上的第一个div?就在这一节? ':第一个孩子'给出了上下文,无论是文档,div还是ul。随你。 – idrumgood 2013-03-07 22:38:58

0

至于为什么不是:first因为首先关系到什么?整个页面上的第一个div?就在这一节? :first-child给出上下文,无论它是文档,div,ul。随你。

由于您正在考虑在div中选择一个元素,因此您所引用的字面意思实际上应该是div > :first-child

div:first意思是,如果从字面上理解,你遇到的第一个div。所以它将永远是页面上的第一个div。

div:first-child字面意义上的意思是“一个div,它是它的父项的第一个孩子”您需要记住,psuedo类描述了它们所应用的元素。