2011-12-08 9 views
0

この問題は非常に単純に思えますが、これを動作させることはできません。特定の要素である最初の子を取得するには?

次の簡単なマークアップがあります。私はli要素であるリストから最初の項目を選択するにはどうすればよい

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

? (すなわちdivではない)。

私はこの

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

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

のように...さまざまな方法を試してみましたが、しかし、私は何の仕事をするように見えることはできません。

+0

あなたのHTMLが有効でないことを知っています:ulのみ子としてliの要素を持つことができるので、あなたの二番目のルールに従って:first-childを使用するのに十分でなければなりませんか? 'ul'要素は' li'要素以外の要素を含むことはできません。 –

答えて

3

異なるタイプの他の要素に関係なく、そのタイプの最初の要素を取得するには、通常:first-of-type CSS3疑似クラスを使用します。

しかし、ここでは、それは最初の場所でulの子としてdivを持っている有効なHTMLではありませんので、あなたはその内側のdivアウトを移動するべきです。

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

ブラウザはこれを修正して、すでにdiv要素を外していると思います。 –

+0

@Felix Kling:Firefoxはとにかく 'ul'に' div 'を残して喜んでいるようです。これは ':first-child'がOPのマークアップで動作しない理由を説明するかもしれません。 Firebugで$( '

').find( 'div') 'を実行し、結果を確認してください。 – BoltClock

+0

@BoltClock私はリスト項目の右側に浮かぶ小さなインジケータを作ろうとしています - もしdivをリストと適切に揃えていないulの外に移動すると... –

関連する問題