CSSの基礎知識
スタイルの優先順位
HTML文書に適用されるCSSのスタイルは、その指定方法や記述する順序によって優先度が異なります。
組み込まれるスタイルの優先順位
CSSは「Cascading Style Sheets」という名前の通り段階的(Cascading)に適用され、「あとに組み込まれた宣言ほど優先順位が高くなる」というルールが基本になります。
ブラウザーの既定のスタイルよりも閲覧者がブラウザーに設定したユーザースタイル、さらに制作者が設定したスタイルが優先されます。また、HTML文書に組み込んだ外部スタイルシートよりもstyle要素内での宣言のほうが優先され、さらにstyle属性による宣言がもっとも優先されます。
記述の順序の優先順位
記述の順序についても同様です。以下の例では、p要素に対して2つのスタイルを指定していますが、適用されるのは後ろに記述したスタイルとなります。
HTML
<head>
<style type="text/css">
p {color: red; }
p {color: blue; }
</style>
</head>
個別性の優先順位
スタイルには「個別性」という基準も設けられています。style属性の有無や、セレクタ内のid属性、その他の属性、疑似クラス、要素、疑似要素の数によって以下のような計算がなされ、記述の順序に関係なくスタイルが優先して適用されます。
| スタイルの指定 | 得点の計算 |
|---|---|
| 要素にstyle属性が指定されている | 1,000点が計算される |
| セレクタにid属性が含まれる | id属性1つにつき100点が計算される |
| セレクタにid属性以外の属性と疑似クラスが含まれる | 属性、疑似クラス1つにつき10点が計算される |
| セレクタに要素、疑似要素が含まれる | 要素、疑似要素1つにつき1点が計算される |
!important宣言
スタイルの区切りを表すカンマ(;)の後ろに「!important」を追記すると、そのスタイルは最優先で指定されます。
HTML
<style type="text/css">
p {color: red; !important }
p {color: blue; }
</style>


