2013-03-07 131 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類描述了它們所應用的元素。