今さらですが…
CSSだけで表の背景色を交互に変える方法の覚え書き。
※IE8以下のブラウザには対応していません。
でも、マイクロソフトはIE8のサポートを終了したので、これからはどんどん使えそうです。(ようやく。。。)
このページのもくじ
nth-child疑似クラスを使う
行ごとに色を変える
↓ サンプル
1行目左 | 1行目右 |
2行目左 | 2行目右 |
3行目左 | 3行目右 |
4行目左 | 4行目右 |
↓ CSS
.t-gyo tr:nth-child(odd) td { background-color: #EAF6FD; } .t-gyo tr:nth-child(even) td { background-color: #EFEFEF; }
tr:nth-child(even)または、tr:nth-child(2n)で偶数行の背景色を一気に設定できます。
tr:nth-child(odd)または、tr:nth-child(2n+1)で奇数行の背景色
【ポイント】(odd)を記入すると奇数に対して、(even)を記述すると偶数に対して指定することができます。
tr:first-childとth:first-childで見出し(th)の背景色を設定できます。
↓ HTML
<table class="t-gyo"> <tr> <td>1行目左</td> <td>1行目右</td> </hr> <tr> <td>2行目左</td> <td>2行目右</td> </hr> <tr> <td>3行目左</td> <td>3行目右</td> </hr> <tr> <td>4行目左</td> <td>4行目右</td> </hr> </table>
※tableタグのclassに“t-gyo”を入れたテーブルのみ背景色がつく
列ごとに色を変える
↓ サンプル
1行目左 | 2行目右 | 3行目左 | 4行目右 |
1行目左 | 2行目右 | 3行目左 | 4行目右 |
1行目左 | 2行目右 | 3行目左 | 4行目右 |
1行目左 | 2行目右 | 3行目左 | 4行目右 |
↓ CSS
.t-tate td:nth-child(odd) { background:#EAF6FD; } .t-tate td:nth-child(even) { background:#EFEFEF; }
CSSの「tr」を「td」に変えるだけで、列の背景色を一気に設定できる。
↓ HTML
<table class="t-tate"> <tr> <td>1列目</td> <td>2列目</td> <td>3列目</td> <td>4列目</td> </tr> <tr> <td>1列目</td> <td>2列目</td> <td>3列目</td> <td>4列目</td> </tr> </table>
nth-child疑似クラスについて
「n」というのは倍数を指定するときに使用。「:nth-child(1)」と記述すれば1番目(先頭)を、「:nth-last-child(1)」と記述すれば最後の1つを装飾できます。値には1以上の整数なら何でも指定できますので、「:nth-last-child(2)」と記述すれば「最後から2番目だけ」を装飾できます。
例)
先頭から3つ(1,2,3番目)だけ |
:nth-child(-n+3) *「-n」=マイナス記号の記述を忘れないよう注意 |
1番目(先頭) | :nth-child(1) |
7番目以降(7,8,9,番目)を対象に | :nth-child(n+7) |
末尾から3つだけ | :nth-last-child(-n+3) |
末尾から4つ目以前 | :nth-last-child(n+4) |
最後の1つだけ | :nth-last-child(1) |
最後から2番目だけ | :nth-last-child(2) |
偶数番目(2,4,6……番目) | :nth-child(2) |
奇数番目(1,3,5……番目) | :nth-child(2n+1) |
3の倍数(3,6,9……) | :nth-child(3n) |
1から始めて3つおき | :nth-child(3n+1) |
2から始めて3つおき | :nth-child(3n+2) |