CSSの優先順位
「スタイルを指定したのに適用されない!」ということがあります。
そんなときは、CSSの優先順位を見直してください。
スタイルの指定方法による優先順位
スタイルの指定方法には優先順位があります。
同じ指定方法の場合には後から記載されたほうが優先されます。
指定方法 | 使用例 | ポイント |
---|---|---|
style属性 | style="color: #c00;" | 1,000 |
id | #text_color_blue{color: #00c;} | 100 |
class | .text_color_green{color: #0c0;} | 10 |
擬似クラス | a:visited {color: #800080;} | 10 |
要素 | p {color: #333;} | 1 |
擬似要素 | p:after {content: "[END]"; color: pink;} | 1 |
全称セレクタ | * {color:#000;} | 0 |
仮に上記のstyleとidとclassを同時に指定したときにどうなるか試してみましょう。
<p style="color:#cc0000;" id="text_color_blue" class="text_color_green"> この場合は赤色で表示されます。 </p>
この場合は赤色で表示されます。
style属性 > id > class なので、style属性で指定した赤色が適用されています。
<p id="text_color_blue" class="text_color_green"> この場合は青色で表示されます。 </p>
この場合は青色で表示されます。
今度はstyle属性はなく、id > class なので、idで指定した青色が適用されています。
<div id="text_color_blue"> <p class="text_color_green"> この場合は緑色で表示されます。 </p> </div>
この場合は緑色で表示されます。
divのidで青色が指定されていますが、pのclassで緑色が指定されているので緑色が適用されています。
pのclassがなければ、divのidで指定されている青色が適用されます。
#sample_blue p{color: #00c;} .sample_green{color: #0c0;} <div id="sample_blue"> <p class="sample_green"> この場合は緑色ではなく、青色で表示されます。 </p> </div>
この場合は緑色ではなく、青色で表示されます。
一つ前と同じようにpのclassで緑色が指定されていますが、「#sample_blue p」という指定があるので、
id > classで、青色が適用されています。
h4 {color: #0c0 !important;} h4#sample_blue2{color: #00c;} <h4 id="sample_blue2"> この場合は青色ではなく、緑色で表示されます。 </h4>
この場合は青色ではなく、緑色で表示されます。
同じh4であれば後から記載したほうが優先されますし、「sample_blue2」というidで青色を指定していますが、 「!important」があるため緑色が適用されています。