2 つの特定のクラスに設定されているクラス属性の値に基づいて、CSS で要素を選択する方法はありますか。たとえば、3 つの div があるとします。
<div class="foo">Hello Foo</div>
<div class="foo bar">Hello World</div>
<div class="bar">Hello Bar</div>
リスト内の 2 番目の要素が foo クラスと bar クラスの両方のメンバーであるという事実に基づいて、その要素のみを選択するには、どのような CSS を記述すればよいでしょうか?
ベストアンサー1
両方のクラスセレクターを連結します(間にスペースを入れないでください)。
.foo.bar {
/* Styles for element(s) with foo AND bar classes */
}
Internet Explorer 6 などの古いブラウザーをまだ使用する必要がある場合は、連鎖クラス セレクターが正しく読み取られないことに注意してください。他のクラスがリストされているかどうかに関係なく、最後のクラス セレクター (.bar
この場合は) のみが読み取られます。
他のブラウザと IE6 がこれをどのように解釈するかを説明するために、次のスニペットを検討してください。
* {
color: black;
}
.foo.bar {
color: red;
}
<div class="foo">1. Hello Foo</div>
<div class="foo bar">2. Hello World</div>
<div class="bar">3. Hello Bar</div>
ページは次のようになります:
サポートされているブラウザの場合:
- この要素にはクラス のみがあるため選択されません
foo
。 - この要素にはクラス
foo
との両方があるため選択されましたbar
。 - この要素にはクラス のみがあるため選択されません
bar
。
- この要素にはクラス のみがあるため選択されません
Internet Explorer 6の場合:
- この要素にはクラスがないため選択されません
bar
。 bar
リストされている他のクラスに関係なく、この要素にはクラスがあるため選択されます。- この要素にはクラスがあるため選択されました
bar
。
- この要素にはクラスがないため選択されません