2011-10-23 19 views

答えて

34

クラスごとに要素を一致させる(またはしない)兄弟セレクタはありません。

私は考えることができる最も近いセレクタは

.iwant:only-child 

である。しかし、このセレクタは関係なく、タイプまたはクラスの、親divの子としてそのdiv class="iwant"以外の他の要素が存在しないことを意味します。これはあなたのHTMLの構造に応じてあなたの必要性を満たすかもしれないので、試してみる価値があります。しかしクラス名が問題であれば、解決策はそれほどありません。CSSには疑似クラスの:only-of-classがなく、クラスでフィルターをかけて残りを無視します。

+0

それは解決策になるかもしれませんが、余分な 'div'sがあるかもしれませんので、私は、より一般的なものを好みます。しかし、良い考え。 –

1

否定兄弟CSSセレクタはありません。その後、.idontwantでスタイルをリセットし、新しいスタイルを設定するには、兄弟セレクタを使用します。

div.iwant { 
    /*Set CSS here*/ 
    display: inline; 
} 
div.iwant ~ div.idontwant { 
    /*Reset CSS*/ 
    display: block /* Default of DIV is block*/ 
} 
+0

各クラスは互いに排他的ですので、これは冗長です。 – BoltClock

+0

@BoltClockそれはどういう意味ですか? 'div.iwant〜div.idontwant'セレクタは' div.iwant'よりも具体的です。 –

+2

私はスタイルを設定していないので、クローラの要素を取得したいので、1つのクエリでそれを行うことをお勧めします。 –

2

特定の兄弟アイテムなしでアイテムをターゲットにする良い方法はありません。ただし、次の兄弟を持たないアイテムをターゲットにする場合は.iwant:last-childを使用できます。

例:http://codepen.io/martinkrulltott/pen/YyGgde

関連する問題