セレクタの詳細度は以下の様に計算します。詳細度が高いほど優先度が高くなります。
セレクタ内のID属性を数え上げ、その数を「a」とする。
他の属性及び擬似クラスを数え上げ、その数を「b」とする。
要素名を数え上げ、その数を「c」とする。
擬似要素は無視する。
この3つの数字を「abc」と並べて詳細度とします。ただし十分大きな基数の記進法で考えるものとします。
いくつか例を挙げると
* {} /* a=0 b=0 c=0 -> 詳細度 = 0 */
LI {} /* a=0 b=0 c=1 -> 詳細度 = 1 */
UL LI {} /* a=0 b=0 c=2 -> 詳細度 = 2 */
UL OL+LI {} /* a=0 b=0 c=3 -> 詳細度 = 3 */
H1 + *[REL=up]{} /* a=0 b=1 c=1 -> 詳細度 = 11 */
UL OL LI.red {} /* a=0 b=1 c=3 -> 詳細度 = 13 */
LI.red.level {} /* a=0 b=2 c=1 -> 詳細度 = 21 */
#x34y {} /* a=1 b=0 c=0 -> 詳細度 = 100 */
HTML、XHTMLでは、要素のstyle属性を用いて属性値としてスタイルシートを記述することができます。この場合、属性値として記述された規則には対応するセレクタが存在しませんが、これらの規則はIDセレクタを持つものとして(すなわち詳細度100として)考えます。すべての規則の後にstyle属性が記述されているのならばカスケード処理の順序によって、その記述は優先されます。
style属性による記述はIDセレクタと同じ詳細度100と考えます。
<h1 style="color:blue">あいさつ</h1>