同じHTML要素に適用されるCSSルールが複数あるとき、優先順位が高いルールが低いルールをプロパティ単位で上書きします。
優先順位は「詳細度」と「カスケード」という2つの規則で決定されます。
詳細度
CSSのセレクタ―には「詳細度」と呼ばれる点数がついています。詳細度の点数が高いセレクタ―のレールが、点数の低いセレクタ―のルールを上書きします。
基本的には、より特定の要素をピンポイントで選ぶセレクタ―のほうが、どんな要素にでもマッチするセレクタ―よりも詳細度が高くなります。
タイプセレクタ―、クラスセレクターなど、セレクタ―の種類によってそれぞれ下記のように点数が決まっています。
CSSルールの詳細度は、使われているセレクタ―の点数を足し合わせて計算します。
セレクタ―の種類 | 点数 |
タグのstyle属性に書かれたCSSルール | 1000 |
IDセレクター1個につき | 100 |
クラスセレクター、属性セレクター、疑似クラスなど1個につき | 10 |
タイプセレクター、疑似要素(::after,::beforeなど)1個につき | 1 |
全称セレクタ― | 0 |
計算例
セレクタ― | 個々のセレクタ―の種類 | 点数式 | 詳細度 |
* | 全称セレクタ― | 0 | 0 |
ol | タイプセレクタ― | 1 | 1 |
ul ol | タイプセレクタ― + タイプセレクタ― | 1 + 1 | 2 |
ol:first-child | タイプセレクタ― + 疑似クラス | 1 + 10 | 11 |
ul ol.green | タイプセレクタ― + タイプセレクター + クラスセレクター | 1 + 1 + 10 | 12 |
h3 *[rel=”up”] | タイプセレクタ― + 全称セレクター + 属性セレクター | 1 + 0 + 10 | 11 |
#load | IDセレクタ― | 100 | 100 |
style=”” | タグのスタイル属性 | 1000 | 1000 |
カスケード
CSSルールは、先に書かれたルールから順に適用されます。
そして、HTMLの同じ要素に適用され、かつ詳細度が同じセレクターのルールが出てきた場合は、後から出てきたほうが先のルールをプロパティ単位で上書きします。
この上書き規則のことをカスケードと言います。
この本から引用、参考に完成させることができました。しかし、プログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っています。解説とともにコードを書き、完成させれば資格取得に必要なHTMLやCSSについてより深く学ぶことができます(^.^) 身に付けて消えないスキルがこの値段。買っておいてよかったです。
オンラインで受講ができるスクールですので、全国どこからでも。