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>