2011-12-08 54 views
0

這個問題看起來很簡單,但我無法得到這個工作。如何獲得第一個孩子是一個特定的元素?

我有以下簡單的標記。

<div id="left_pane"> 
<ul> 
<div id="indicator"></div> 
<li>Something</li> 
<li>Something else</li> 
</ul> 
</div> 

如何從列表中選擇第一項是li元素? (即不是div)。

我已經嘗試了許多不同的方法......這樣

#left_pane ul:first-child li { 
    /* style */ 
} 

#left_pane li:first-child { 
    /* style */ 
} 

但我似乎無法做任何事情的工作。

+0

你知道你的HTML是無效的? 「ul」元素不能包含「li」元素以外的任何其他元素。 –

回答

3

要獲取其類型的第一個元素,而不考慮其他類型的元素,通常使用:first-of-type CSS3僞類。

但在這裏,這不是有效的HTML有div作爲首位ul的孩子,所以你應該以移動內部div出來。那麼它應該是足夠使用:first-child按你的第二個規則,因爲一個ul只能有li子元素:

#left_pane li:first-child { 
    /* style */ 
} 
+0

我想瀏覽器正在糾正這個問題,並已經移出'div'元素,這可能會讓事情變得更加混亂。 –

+0

@Felix Kling:無論如何,Firefox似乎很樂意將'div'保留在'ul'中,這可以解釋爲什麼':first-child'不能用OP的標記工作。在Firebug運行'$('

').find('div')'並檢查結果。 – BoltClock

+0

@BoltClock我正在嘗試做一個漂浮在列表項右側的小指標 - 如果我將它移出ul,div不會與列表正確對齊... –

相關問題