優先順位を操作できるCSSの詳細度について
CSSを記述していると、正しく記述されているのに、結果が反映されず困ることがあります。
それは、CSSの詳細度が関係している可能性が高いです。
CSSの詳細度が高いと、CSSが適用される優先順位が高くなります。
CSSでは、いろんな書き方で指定できるため、CSSの詳細度を理解して優先順位を操作できるようになりましょう。
目次から読む
CSSの詳細度
CSSには、いろんな指定方法があります。 たとえば、こんな感じです。<section id="info">
<h1 id="about" class="title box">Main Title</h1>
</section>h1 { color: red; }
h1#about.box {color: yellow; }
section > #about.title { color: blue; }
section#info > h1 { color: pink; }
これらのCSSは、どれが優先されるのでしょうか。
具体的に詳細度の決まり方をみていきましょう。
詳細度の点数について
CSSのセレクターには、それぞれ詳細度の点数があります。- id
- class, 属性, 疑似クラス
- 要素、疑似要素
詳細度は合計点ではない
CSSの詳細度は、合計点で決まるのではなく、上から順に高い値のものが優先される仕組みになっています。 つまり、- id
- class, 属性, 疑似クラス
- 要素、疑似要素