2012-08-22 60 views
4

有人可以向我解釋爲什麼這不起作用嗎?CSS身體:第一個孩子

<html> 
<head> 
    <style> 
    body:first-child 
    { 
     color:#f00; 
    } 
    </style> 
</head> 
<body> 
    <div>I should be red.</div> 
    <div>This is not red.</div> 
</body> 
</html> 

從我讀到的,第一個孩子的選擇器應該從body標籤中選擇第一個div對象。如果它沒有選擇div元素,它選擇了什麼?

+0

不要忘了包括 –

回答

7

要定位第一個div,您需要執行body div:first-child。現在(我認爲)你只是選擇了第一個孩子的身體。 (其實我不是很確定你現在選擇什麼權,想起來了。我不認爲first-child選擇是有效的,直接在身上的標籤掛)

body div:first-child { 
    color:#f00; 
}​ 

這個CSS會按照你的期望着色。閱讀它作爲「身體的第一個孩子的div」。

+0

也許我有點困惑至於第一胎兒選擇器。我認爲它更像是「身體內div的第一個孩子」。 如果我想選擇身體中的最後一個孩子,那麼我會使用: 'body div:last-child'? – Xeno

+0

是的,但這隻會得到最後的* div *孩子。 –

+0

@ Xeno:':first-child'的意思是「如果它是第一個孩子,選擇這個元素」,而不是「選擇這個元素的第一個孩子」。 – BoltClock

7

body:first-child:first-child僞類對身體標記工作,所以它的身體標記,是其父母的第一個孩子將要選擇,如果你想body的第一個孩子使用child selector

body > :first-child{ 
    color:#f00; 
} 

這會給你身體的第一個孩子。

+0

這在DNN中適用於我。設置中的模塊通常具有teleric或tinyMCE組件,並且其描述字段中的主體標籤將呈現實際站點主體的樣式。超級討厭,但這有助於解決這個問題。 – GomezJr

1

你的CSS是說選擇任何BODY元素,它是它的父元素的第一個子元素,它將是HTML元素。 BUt HEAD是不是BODY的第一個孩子。

至少我認爲這是正確的:-)

0

要定位的body你可以使用這個第一div

body div:first-of-type { 
    /* style */ 
}