私の理解では、element.class
を使用すると、クラスに割り当てられた特定の要素が、クラスの他の部分とは異なる「スタイル」を受け取ることができるはずです。これは、これを使用すべきかどうかについての質問ではなく、このセレクタがどのように機能するかを理解しようとしています。インターネット上のたくさんの例を見ると、構文は正しいと思いますが、なぜこれが機能しないのか理解できません。
以下に例を示します。
CSS:
h2 {
color: red;
}
.myClass {
color: green;
}
h2.myClass {
color: blue;
}
HTML:
<h2>This header should be RED to match the h2 element selector</h2>
<div class="myClass">
<h1>This header should be GREEN to match the class selector</h1>
<h2>This header should be BLUE to match the element.class selector</h2>
</div>
次のようになります。
h2.myClass
は、クラスmyClass
でh2を探します。ただし、実際には.myClass
内でh2のスタイルを適用するため、子孫セレクター.myClass h2
を使用できます。
h2 {
color: red;
}
.myClass {
color: green;
}
.myClass h2 {
color: blue;
}
これは ref セレクターに関する基本的な考えを与え、 descendant selectors を見る
h2.myClass
は、h2
を含むすべてのclass="myClass"
を指します。
.myClass h2
は、h2
を持つ要素の子(つまりネストされた)であるすべてのclass="myClass"
を指します。
HTMLのh2
を青く表示する場合は、CSSを次のように変更します。
.myClass h2 {
color: blue;
}
タグではなくクラスによってh2
を参照できるようにする場合は、CSSをそのままにして、HTMLでh2
クラスを指定する必要があります。
<h2 class="myClass">This header should be BLUE to match the element.class selector</h2>
Element.classセレクターは、次のようなスタイリング状況用です。
<span class="large"> </span>
<p class="large"> </p>
.large {
font-size:150%; font-weight:bold;
}
p.large {
color:blue;
}
スパンとpの両方に、.largeからfont-sizeとfont-weightが割り当てられますが、青色はpにのみ割り当てられます。
他の人が指摘しているように、作業しているのは子孫セレクターです。
h2.myClass
は、クラスmyClass
が直接割り当てられたh2
要素に対してのみ有効です。
次のように注意してください。
.myClass h2
タグ名がh2
であるmyClass
のすべての子を選択します