2011-10-27 6 views
1

私はfooのクラス/クラスを持つページに1つまたは2つのdivを持っています。私は2番目のものだけを選択する必要があります。つまり、ページに1つしかない場合は、それを選択しません。これにはCSSセレクターがありますか?

私はdiv.foo:not(:first)div.foo:nth-child(2)を試しましたが、どちらもうまくいかないようです。

アイデア?

+0

':first'はjQueryセレクタです。 CSSには存在しません。 – BoltClock

答えて

4

あり:nth-of-class()セレクタがありませんが、両方div.foo要素が同じ親を共有する場合、あなたは二div.fooはすぐに最初のか後に来るかどうかに応じて、兄弟セレクタのいずれかを使用できます。

div.foo + div.foo /* Is immediately after */ 
div.foo ~ div.foo /* Is somewhere after among its siblings */ 

つ以上のそのようdiv sが潜在的にある場合は、後続の要素のためにこれらのいずれかを使用して、上記のルールでスタイルを元に戻す必要があります。

div.foo + div.foo ~ div.foo 
div.foo ~ div.foo ~ div.foo 

And don't worry about browser support, this works in IE7+.

+0

両方が同じ親に含まれている場合にのみ機能します。 – Sivvy

+0

'div.foo'要素が同じ親を共有しない場合、' $( 'div.foo:not(:first)') 'のように、最初のセレクタでjQueryを使用する必要があります。 – BoltClock

0

それはいくつかによって異なります。 IEでテストしていますか? 同じ親の中の要素はありますか?

要素が同じ親の中にない場合、それらの特定のセレクタを使用できるかどうかわかりません。覚えている限り、IEでは現在動作しません(兄弟セレクタは除外します)。 IE9 +については確かに)。

関連する問題