CSSにおける詳細度のルール
前の例では、両方のセレクタが同じで 同じ優先度を持っていました。これは、 下に書かれたプロパティが優先される ことを意味します。
また、1つのページ要素が複数のセレクタに 一致する状況もあります。 この場合、プロパティが競合すると、より詳細度が高い、 つまりより具体的なセレクタが優先されます。 詳細度のルールを見ていきましょう。
ルール 1
クラスは常にタグセレクタよりも優先されます:
html<p class="text">text</p>cssp {
color: red;
}
.text {
color: green; /* この色が適用されます */
}
Результат:
ルール 2
IDは常にクラスよりも優先されます:
html<p id="elem" class="text">text</p>css.text {
color: red;
}
#elem {
color: green; /* この色が適用されます */
}
Результат:
ルール 3
同等の条件では、構成部分の数が多いセレクタが 優先されます。例えば、 2つのタグセレクタがある場合、 タグの数が多い方が優先されます:
html<div>
<p>text</p>
</div>cssp {
color: red;
}
div p {
color: green; /* この色が適用されます */
}
Результат:
2つのクラスセレクタの場合、 指定されているクラスの数が多い方が優先されます (そこにタグセレクタが含まれていても影響しません):
html<div class="block">
<p class="text">text</p>
</div>css.text {
color: red;
}
.block .text {
color: green; /* この色が適用されます */
}
Результат: