これのためのCSSセレクターはありますか?

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

私は div.foo:not(:first) div.foo:nth-child(2)を試してみました。

何か案は?

1
:最初はjQueryセレクタです。 CSSには存在しません。
追加された 著者 BoltClock,

2 答え

:nth-​​of-class()セレクタはありませんが、両方の div.foo 要素が同じ親を共有している場合、依存する兄弟セレクタ第2の div.foo が第1のものの直後に来るかどうかについて:

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

潜在的に2つ以上の div がある場合、後続の要素に対してこれらのいずれかを使用して、上記の規則のスタイルを元に戻す必要があります。

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

ブラウザサポートについて心配しないでください。これはIE7 +で動作します。

4
追加された
また、両方が同じ親に含まれている場合にのみ機能します。
追加された 著者 Sivvy,
あなたの div.foo 要素が同じ親を共有しない場合、最初のセレクタでjQueryを使用する必要があります。 $( 'div.foo:not(:first ) ')
追加された 著者 BoltClock,

それはいくつかのことに依存します。 IEでテストしていますか? 同じ親の中の要素はありますか?

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

0
追加された