CSSのさまざまな適用方法
特定の要素にスタイルを適用するとき、何重にもdivを重ねたり、いちいちidやclassを使うのは効率がよくありません。
さまざまなスタイルの適用方法を知っておくことで、シンプルなhtmlの構造でも自在にスタイルを適用することができます。
入れ子構造を使う
以下のhtmlのそれぞれのpタグに赤や青を適用するとします。
index.html
<div id="left"> <p>この文字は赤にしたい</p> </div> <div id="right"> <p>この文字は青にしたい</p> </div>
そんな場合、それぞれのpタグにclassをつけて指定すると以下のようになります。
index.html
<div id="left"> <p class="red">この文字は赤にしたい</p> </div> <div id="right"> <p class="blue">この文字は青にしたい</p> </div>
style.css
.red{ color:rgb(100%,0,0); } .blue{ color:rgb(0,0,100%); }
この方法だと、classが増えてしまったり、htmlの書き換えが必要だったりと面倒です。
なので、以下のようにどのidのdivボックスに入っているかで判別して指定してみましょう。
index.html
<div id="left"> <p>この文字は赤にしたい</p> </div> <div id="right"> <p>この文字は青にしたい</p> </div>
style.css
#left p{ color:rgb(100%,0,0); } #right p{ color:rgb(0,0,100%); }
この方法なら、classを増やさずにそれぞれのpタグに別のスタイルを適用できます。
htmlも最初のままでOK!
ひとつの要素に複数のclassをつける
Classは、一つの要素に複数設定することもできます。
index.html
<p class="red">この文字は赤にしたい</p> <p class="bold">この文字は太字にしたい</p> <p class="bold red">この文字は赤で太字にしたい</p>
style.css
p.red{ color:rgb(100%,0,0); } p.bold{ font-weight:bold; }
複数のclassに同じスタイルを適用
「別の要素だけどスタイルがほとんど一緒!でも一部だけ違う!」
そんなとき、同じスタイルの部分は以下のようにまとめて書くことができます。
index.html
<p class="red">この文字は赤にしたい</p> <p class="bold">この文字は太字にしたい</p>
style.css
/* .redと.boldそれぞれ独自のスタイル */ p.red{ color:rgb(100%,0,0); } p.bold{ font-weight:bold; } /* .redと.boldに共通するスタイルは一括で設定 */ p.red, p.bold{ font-size:15px; margin:10px; }