ルールの優先度は、その相対的特異性 に依存しています。特異性は、3 つの数字
a
-b
-c
で計算されます (基数が大きい記数法で表記されます)。最初の数字 a
はセレクターの ID 構築ブロックの数で、b
は、クラス、疑似クラスおよび属性の数で、c
は、要素タイプの数になります。以下の表の例は優先度順であり、最も特異性のあるものが先頭になっています。
優先度順の例
セレクター |
特異性 |
---|---|
#title > #author.full |
“2-1-0” |
#title |
“1-0-0” |
P.intro P.citation |
“0-2-2” |
UL OL LI.red |
“0-1-3” |
2 つのルールが同じ特異性の数字を示す場合、表示されている順序で優先度が決まります (最後に表示されるルールが前のルールをオーバーライドします)。
優先度は以下のように使用されます。まず、同じオブジェクトに一致するすべてのルールの宣言がマージされ、
次に、マージされた宣言ブロック内に競合 (同じキー値) が生じる場合にのみ優先度が適用されます。