CSS 2.1 のカスケーディングについて疑問に思ったので調べてみた。
CSS 2.1 のカスケーディングは以下の順序で優先される。
a. 誰の指定したスタイルかによる優先度
-
- ユーザのCSS で最重要のもの
- 製作者のCSS で最重要のもの
- ユーザのCSS
- 製作者のCSS
- UA のデフォルトCSS
b. セレクタの重みによる優先度
- セレクタの重みの計算方法
- セレクタを伴う規則よりstyle属性内の宣言を優先し,それをA(=1)とする(さもなくば=0)。
- セレクタ内にあるIDセレクタを数えあげ,それを B とする。
- その他の属性や擬似クラスを数えあげ,それを C とする。
- 要素型名および擬似要素を数えあげ,それを D とする。
- 1000A + 100B + 10C + D の結果がセレクタの重みとなる。
c. 宣言の位置による優先度
より後に宣言された方が優先される。
a ~ c の順で優先度を見ていけばいい。
参考: 値わりあて,カスケード処理,継承 - CSS2リファレンス