サムネイルギャラリーになる<div>
タグに2つのクラスを適用する<div>
タグを作成していました。その位置のための1つのクラスとそのスタイルのための他のクラス。この方法でスタイルを適用できましたが、奇妙な結果が出ていたので、疑問に思いました。
2つのクラスを<div>
タグに割り当てることはできますか?もしそうなら、どちらが他方を無効にし、どちらが優先されますか?
Divには複数のクラスを割り当てることができます。クラス名で次のようにスペースで区切ってください:
<div class="rule1 rule2 rule3">Content</div>
このdivは、3つの異なるクラスセレクター.rule1
、.rule2
、および.rule3
のスタイルルールと一致します。
CSSルールは、スタイルシートで検出された順序でセレクターに一致するページ内のオブジェクトに適用され、2つのルール間で競合がある場合(複数のルールが同じ属性を設定しようとしている場合) CSSの特異性 は、どのルールを優先するかを決定します。
競合するルールのCSSの特異性が同じ場合、後の方(スタイルシートまたは後のスタイルシートで後で定義されたもの)が優先されます。オブジェクト自体のクラス名の順序は重要ではありません。 CSSの特異性が同じ場合に重要なのは、スタイルシート内のスタイルルールの順序です。
したがって、次のようなスタイルがある場合:
.rule1 {
background-color: green;
}
.rule2 {
background-color: red;
}
次に、両方のルールがdivに一致し、CSSの特異性がまったく同じであるため、2番目のルールが後から来るため、優先され、背景が赤になります。
1つのルールのCSS特異性が高い(div.rule1
スコアが.rule2
より高い):
div.rule1 {
background-color: green;
}
.rule2 {
background-color: red;
}
次に、それが優先され、ここの背景色は緑になります。
2つのルールが競合しない場合:
.rule1 {
background-color: green;
}
.rule2 {
margin-top: 50px;
}
次に、両方のルールが適用されます。
実際、CSSの最後で定義したクラス-divに適用されます。
見てみな:
.blue{ color: blue; }
.red { color: red; }
<div class="blue red">blue red</div>
<div class="red blue">red blue</div>
対
.red { color: red; }
.blue{ color: blue; }
<div class="blue red">blue red</div>
<div class="red blue">red blue</div>
それらが同じプロパティを持っているかどうかを尋ねると、CSSルールに従って最後のステートメントが使用されます。
<div class="red green"></div>
[〜#〜] css [〜#〜]
.red{
color:red;
}
.green{
color:green;
}
上記の例のように、cssツリーごとの最後のステートメント。greenを使用します。
CSSの最後に定義されているクラスは、他に何も適用されない場合に優先されます。
CSSの優先度について読む 動作を確認します。
多くのクラスを要素に割り当てることができます。スペースで区切るだけです
<div class="myClass aSecondClass keepOnClassing stayClassySanDiego"></div>
CSSのカスケードのため、ドキュメントの上書きルール一番下に最も近いが要素に適用されます。
あなたが持っているなら
.myClass
{
background: white;
color: blue;
}
.keepOnClassing
{
color: red;
}
赤色が使用されますが、上書きされなかったため、背景色は使用されません。
CSSの特異性も考慮する必要があります。より具体的なセレクターがある場合は、このセレクターが使用されます。
.myClass
{
background: white;
color: blue;
}
div.myClass.keepOnClassing
{
background: purple;
color: red;
}
.stayClassySanDiego
{
background: black;
}
ここの2番目のセレクターは、より具体的であるため使用されます。
ここを見てください を使用できます。