2011-05-01 38 views
3

我試圖對id=div1的第一個div申請一些css。當我做.alldivs:first時,它不起作用。我究竟做錯了什麼?以這種方式選擇第一個div有什麼問題

<div class="alldivs"> 
    <div class="onediv" id="div1"> 
    </div> 
    <div class="onediv" id="div2"> 
    </div> 
    <div class="onediv" id="div3"> 
    </div> 
</div> 
+0

有一些曖昧的這樣一個問題:你是不是想選擇ID爲「div1」或第一個子div的div? *現在*,使用此代碼,它們是相同的,但從概念上說它們不是。如果您重新排列這些塊,那麼接受的答案將最終應用於不同的div。 – 2011-05-01 09:48:29

回答

8

如果你想選擇第一個孩子:.alldivs>:first-child應該做的伎倆。

編輯: 蘇編輯我的帖子說.alldivs:first-child。這實際上是不正確的,我已經恢復到原來的狀態。語法:first-child選擇其父項的第一個子項,該子項與緊鄰冒號前面的選擇器相匹配。因此,p:first-child將匹配其父項的第一個子項的任何段落。因此,.alldivs>匹配.alldivs:first-child的任何子項都與第一個匹配。編輯其他帖子之前請確保你是正確的。

2

你想要的是:

.alldivs div:first-child 
0

.alldivs不是一個選擇,如果你想選擇在DOM中的第一個div這將是div:first-child或者,如果你想選擇與類onediv第一個div這將是.onediv:first-child

我希望這有助於你

1

如果div有一個id已經僅僅通過ID選擇它。

#div1 { 
    /* yes that's all you need */ 
} 

有作爲具有相同ID的兩個元素沒有這樣的事情(如果你關注的規則),所以如果它是第一或第三十一次也沒關係。

如果你正在尋找的第一個div無論什麼ID,使用.alldivs :first-child

這裏做進一步的瞭解一些參考:

http://www.w3.org/TR/CSS2/selector.html#first-child