2011-10-07 11 views
24

私は最後/秒をスタイルしたい.headingクラスセレクタのlast-childを使用

<ul> 
    <li class="heading">Hello world</li> 
    <li>Hello world</li> 
    <li>Hello world</li> 
    <li class="heading">Hello world</li> 
    <li>Hello world</li> 
</ul> 

どちら

ul li.heading:last-child { 
    background: black; 
} 

ul li.heading:nth-child(2) { 
    background: black; 
} 
私の作品

。なぜ、そしてそれにスタイルを適用することができますか<li>?擬似クラスセレクタはクラスセレクタでは機能しません。私はそれを前に使っていたと誓ったので、奇妙です。

更新:おっと、完全に忘れましたthe jsfiddle

+0

これらの疑似クラスセレクタでクラスの子を選択できる方法はないと思います。それは常にリストの4番目の見出しですか、それとも常にスタイルを設定したいクラス.headingの2番目のインスタンスですか?常に4番目の答えがうまくいくはずですが、nth-of-typeを使うこともできます。 – KryptoniteDove

+0

この問題をmarkup/semantic/htmlレベルで修正しないと、自分の人生は難しくなります。ネストされた 'ul'を使うと、CSS2セレクタで望むものを正確に行うことができます。 –

答えて

24

あなたの文はでした:それは、この試してみてul

の第一及び第四子である「私は最後の/秒.HEADINGのスタイルにしたいです」あなたはこのようなあなたのコードを記述する必要があることを意味します

<ul> 
    <li class="heading">Hello world</li> 
    <li class="heading">Hello world</li> 
    <li class="heading">Hello world</li> 
    <li class="heading">Hello world</li> 
    <li class="heading">Hello world</li> 
</ul> 

とCSS:エルス

ul li.heading:last-child { 
    background: black; 
} 
ul li.heading:nth-child(2) { 
    background: black; 
} 

、現在のHTMLコードで、次のように記述します。

ul li.heading:nth-child(4) { 
    background: black; 
} 
ul li.heading:nth-child(1) { 
    background: black; 
} 

私はあなたの考えを理解していますが、「見出し」クラスのlisは2番目または最後の子ではありません。

4

これは、li.headingが最後の子でも2番目の子でもないためです。

ul li.heading:nth-child(4) { 
    background: black; 
} 
4
ul li.heading:nth-last-child(2) 

2は、あなたの<のliクラスは=「見出し」の後にどのように<李>の多くを知っている意味私たちのケースで>それは下から2番目です。

関連する問題