CSS 2.1 におけるカスケーディングについて

CSS 2.1 のカスケーディングについて疑問に思ったので調べてみた。

CSS 2.1 のカスケーディングは以下の順序で優先される。

a. 誰の指定したスタイルかによる優先度

    1. ユーザのCSS で最重要のもの
    2. 製作者のCSS で最重要のもの
    3. ユーザのCSS
    4. 製作者のCSS
    5. UA のデフォルトCSS

b. セレクタの重みによる優先度

  • セレクタの重みの計算方法
    • セレクタを伴う規則よりstyle属性内の宣言を優先し,それをA(=1)とする(さもなくば=0)。
    • セレクタ内にあるIDセレクタを数えあげ,それを B とする。
    • その他の属性や擬似クラスを数えあげ,それを C とする。
    • 要素型名および擬似要素を数えあげ,それを D とする。
    • 1000A + 100B + 10C + D の結果がセレクタの重みとなる。

c. 宣言の位置による優先度
より後に宣言された方が優先される。

a ~ c の順で優先度を見ていけばいい。

参考: 値わりあて,カスケード処理,継承 - CSS2リファレンス