CSSで奇数、偶数、最初、最後、n番目の要素にだけスタイルを設定する方法
※本ページはプロモーションが含まれています
HTML+CSSでテープルやリストなど、奇数あるいは偶数番目の要素だけ色を変えたり、最後の要素だけボーダーを付けないようにしたい場合があります。
それらはCSS3で追加された「nth-child」擬似クラスを使うことで実装することが可能ですので、その方法をリストタグで紹介します。(IEはIE9以降対応)
奇数番目の要素にだけ適用
li:nth-child(odd){ 適用したいスタイル }
偶数番目の要素にだけ適用
li:nth-child(even){ 適用したいスタイル }
最初の要素にだけ適用
li:first-child{ 適用したいスタイル }
最後の要素にだけ適用
li:last-child{ 適用したいスタイル }
上からn番目の要素にだけ適用
li:nth-child(3){ 適用したいスタイル }
この場合上から3番目の要素にだけ適用される。数字を変えればその場所の要素だけ適用される。
上からnつの要素だけに適用
li:nth-child(-n+3) { 適用したいスタイル }
この場合上から3つの要素にだけ適用される。「-n」にすることに注意。
上からn番目以降の要素にだけ適用
li:nth-child(n+4) { 適用したいスタイル }
この場合4番目以降の要素にだけ適用される。
下からn番目の要素にだけ適用
li:nth-last-child(3){ 適用したいスタイル }
この場合上から3番目の要素にだけ適用される。
下からnつの要素にだけ適用
li:nth-last-child(-n+3) { 適用したいスタイル }
この場合下から3つ目の要素にだけ適用される。「-n」にすることに注意。
下からn番目以前の要素にだけ適用
li:nth-last-child(n+4) { 適用したいスタイル }
この場合下から4つ目以前の要素にだけ適用される。
Xの倍数番目の要素にだけ適用
li:nth-child(3n) { 適用したいスタイル }
この場合3の倍数番目(3、6、9、12…)の要素にだけ適用される。
li:nth-child(3n+1) { 適用したいスタイル }
このようにすると3の倍数に1を足した数番目(1、4、7、10…。)の要素にだけ適用される。
おわりに
いろいろなパターンで指定できるようになり、CSSのデザインの幅が広がっています。
個人的にはIF文を使った分岐が出来ると嬉しいです。(PHPやjavascriptを使わずに)