要素セレクタで条件下の要素のスタイルを変える方法

css

セレクタを上手く使えば、HTML側に手を入れなくても色々なスタイルを適用させることができます。

要素:要素セレクタ;
要素セレクタ説明
nth-child(条件)条件にマッチした要素(前から)
nth-last-child(条件)条件にマッチした要素を(後から)
nth-of-type(条件)同一要素(前から)
nth-last-of-type(条件)同一要素(後から)
first-child最初の要素
last-child最後の要素

以下のリスト要素のスタイルを要素セレクタを使って色々変えてみましょう。

<ul>
  <li>1行目</li>
  <li>2行目</li>
  <li>3行目</li>
  <li>4行目</li>
  <li>5行目</li>
</ul>

先頭/末尾のスタイルを変える

first-child/last-childプロパティを使います。これによって先頭/末尾の要素にだけスタイルを適用させることができます。

ul{list-style:none;}

ul li:first-child{
  background-color:blue;
  color:white;
}

ul li:last-child{
  background-color:white;
  color:red;
}
style-change-selector01

行数でスタイルを変える

奇数行と偶数行でスタイルを変える

先頭から条件を指定できるnth-childプロパティを使います。 奇数行はodd、偶数行はevenでスタイルを指定しましょう。 テーブルやリストの視認性を上げる事ができるかもしれません。

ちなみにnth-last-childを使えば末尾から条件を指定できます。

ul{list-style:none;}

ul li:nth-child(odd){
  background-color:blue;
  color:white;
}

ul li:nth-child(even){
  background-color:white;
  color:red;
}
style-change-selector02

oddは「2n+1」、evenは「2n」でも同じ結果となります。

3の倍数行でスタイルを変える

nth-childプロパティの条件を「3n」で指定してやれば、3の倍数行だけスタイルを変えることができます。組み合わせで色々応用が利きますね。

ul{list-style:none;}

ul li:nth-child(3n){
  background-color:blue;
  color:white;
}
style-change-selector03

奇数・偶数行と先頭行に別スタイルを与える

基本的に奇数行と偶数行でスタイルを分けつつ、一行目には別のスタイルを適用させてみましょう。 スタイル競合時のルールを理解していれば簡単ですね。 後勝ちなので一行目のスタイル指定を後ろに書きます。

ul{list-style:none;}

ul li:nth-child(odd){
  background-color:blue;
  color:white;
}

ul li:nth-child(even){
  background-color:white;
  color:red;
}

ul li:first-child{
  background-color:black;
  color:white;
}
style-change-selector04

このように単純なHTMLに対してでもCSSで様々な装飾を施すことができます。 変にdivやclassを追加するよりはスマートなので、色々工夫してみましょう。

アマルウェブ HOME