ホームへ

【CSS】tableの奇数行,偶数行・奇数列,偶数列の指定方法

2021年12月11日

「表の奇数行と偶数行の色を変えたい!」

tableの奇数行・偶数行、奇数列・偶数列を指定する方法を紹介します。

結論

  • 【偶数行】tr:nth-of-type(2n) td
  • 【奇数行】tr:nth-of-type(2n-1) td
  • 【偶数列】td:nth-of-type(2n)
  • 【奇数列】td:nth-of-type(2n-1)

下記より詳しく解説します。

CSSやhtmlの基本をしっかり理解すると、この記事の内容もより理解できるようになりますよ。

↓CSSやhtmlを楽しく学べるようにマンガを描きましたのでゼヒご覧ください↓

↑「副業してもう少し稼ぎたい!」というかたのために副業の方法も解説しています。

【ポイント】:nth-of-type(n)を使う

「:nth-of-type(n)」は「n番目の…」と指定できる疑似クラス(セレクタ)です。

nには数字か数式が入ります。

これを使うと「上から何番目の行」「左から何番目の列」を指定できます。

【後ろから数えるなら】:nth-last-of-type(n)

「一番下の行、一番右の列を指定したい!」というときは「:nth-last-of-type(n)」を使いましょう。

これを使うと「下から何番目の行」「右から何番目の列」を指定できます。

【行指定】tr:nth-of-type(n) td

セル1-1 セル1-2 セル1-3 セル1-4 セル1-5 セル1-6
セル2-1 セル2-2 セル2-3 セル2-4 セル2-5 セル2-6
セル3-1 セル3-2 セル3-3 セル3-4 セル3-5 セル3-6
セル4-1 セル4-2 セル4-3 セル4-4 セル4-5 セル4-6

CSS

tr:nth-of-type(3) td{
    background: #c0e0fc;
}

tableの行は必ずtrに囲まれています。

よってtrが何番目か指定すると行数を指定できます。

trにはCSSを指定せず、その子要素のtdにCSSを指定しましょう。

3行目を指定したいときは「tr:nth-of-type(3) td」と指定します。

【偶数行】tr:nth-of-type(2n) td

セル1-1 セル1-2 セル1-3 セル1-4 セル1-5 セル1-6
セル2-1 セル2-2 セル2-3 セル2-4 セル2-5 セル2-6
セル3-1 セル3-2 セル3-3 セル3-4 セル3-5 セル3-6
セル4-1 セル4-2 セル4-3 セル4-4 セル4-5 セル4-6
tr:nth-of-type(2n) td{
    background: #c0e0fc;
}

偶数は2の倍数です。数式にすると「2n」となります。

「:nth-of-type(2n)」と指定すると偶数になります。

「:nth-of-type(even)」も偶数です。個人的には「2n」のほうが覚えやすいです。

【奇数行】tr:nth-of-type(2n-1) td

セル1-1 セル1-2 セル1-3 セル1-4 セル1-5 セル1-6
セル2-1 セル2-2 セル2-3 セル2-4 セル2-5 セル2-6
セル3-1 セル3-2 セル3-3 セル3-4 セル3-5 セル3-6
セル4-1 セル4-2 セル4-3 セル4-4 セル4-5 セル4-6
tr:nth-of-type(2n-1) td{
    background: #c0e0fc;
}

偶数は2の倍数です。奇数は偶数から1つずらした数字となります。

数式にすると「2n-1」または「2n+1」となります。どちらでもOKです。

「:nth-of-type(2n-1)」または「:nth-of-type(2n+1)」と指定すると奇数になります。

「:nth-of-type(odd)」も奇数です。個人的には「2n-1」または「2n+1」のほうが覚えやすいです。

一行目がth(タイトル)のとき

「tr:nth-of-type(n)」は何番目のtrかを数えています。一行目がthであろうがtrは1番目です。

一行目を除くと考えると「2n」は「2n-1」、「2n+1」は「2n+1-1」=「2n」となり、偶数と奇数が入れ替わりますので注意しましょう。

タイトル1 タイトル2 タイトル3 タイトル4 タイトル5 タイトル6
セル1-1 セル1-2 セル1-3 セル1-4 セル1-5 セル1-6
セル2-1 セル2-2 セル2-3 セル2-4 セル2-5 セル2-6
セル3-1 セル3-2 セル3-3 セル3-4 セル3-5 セル3-6
セル4-1 セル4-2 セル4-3 セル4-4 セル4-5 セル4-6
tr:nth-of-type(2n-1) td{
    background: #c0e0fc;
}

↑奇数行(2n-1)を指定していますが、タイトル行が1行目、普通行が2行目から始まるため、普通行の偶数行が指定されます。

また、CSSでは「td」を指定しているため「th」には適用されません。

thにもCSSを指定したい場合は「tr:nth-of-type(2n-1) th」のように追加しましょう。

とはいえ、実際thは最初の行でしか使わないため「n番目の…」という指定は不要で「th」だけの指定でよいでしょう。

任意で指定したいとき

「行数が増えたり減ったりしてもこの行を押さえておきたい!」というときは任意のtrにclassをつけましょう。

【列指定】td:nth-of-type(n)

セル1-1 セル1-2 セル1-3 セル1-4 セル1-5 セル1-6
セル2-1 セル2-2 セル2-3 セル2-4 セル2-5 セル2-6
セル3-1 セル3-2 セル3-3 セル3-4 セル3-5 セル3-6
セル4-1 セル4-2 セル4-3 セル4-4 セル4-5 セル4-6
td:nth-of-type(3){
    background: #c0e0fc;
}

列は特定のhtmlタグには囲まれていません。

ただし、tdの数はどの行でも同じです。

これを利用して「すべての行のn番目のtd」を指定すると列を指定できます。

「td:nth-of-type(3)」と指定すると3列目を指定できます。

【偶数列】td:nth-of-type(2n)

セル1-1 セル1-2 セル1-3 セル1-4 セル1-5 セル1-6
セル2-1 セル2-2 セル2-3 セル2-4 セル2-5 セル2-6
セル3-1 セル3-2 セル3-3 セル3-4 セル3-5 セル3-6
セル4-1 セル4-2 セル4-3 セル4-4 セル4-5 セル4-6
td:nth-of-type(2n){
    background: #c0e0fc;
}

偶数は2の倍数です。数式にすると「2n」となります。

「:nth-of-type(2n)」と指定すると偶数になります。

「:nth-of-type(even)」も偶数です。個人的には「2n」のほうが覚えやすいです。

【奇数列】td:nth-of-type(2n-1)

セル1-1 セル1-2 セル1-3 セル1-4 セル1-5 セル1-6
セル2-1 セル2-2 セル2-3 セル2-4 セル2-5 セル2-6
セル3-1 セル3-2 セル3-3 セル3-4 セル3-5 セル3-6
セル4-1 セル4-2 セル4-3 セル4-4 セル4-5 セル4-6
td:nth-of-type(2n-1){
    background: #c0e0fc;
}

偶数は2の倍数です。奇数は偶数から1つずらした数字となります。

数式にすると「2n-1」または「2n+1」となります。どちらでもOKです。

「:nth-of-type(2n-1)」または「:nth-of-type(2n+1)」と指定すると奇数になります。

「:nth-of-type(odd)」も奇数です。個人的には「2n-1」または「2n+1」のほうが覚えやすいです。

一列目がth(タイトル)のとき

「td:nth-of-type(n)」は何番目のtdかを数えています。一列目がthの場合1つめのtdはthの次のtdとなります。

一列目を除くと考えると、行のときと違い、列の場合は奇数と偶数が入れ替わりません。

タイトル1 セル1-1 セル1-2 セル1-3 セル1-4 セル1-5 セル1-6
タイトル2 セル2-1 セル2-2 セル2-3 セル2-4 セル2-5 セル2-6
タイトル3 セル3-1 セル3-2 セル3-3 セル3-4 セル3-5 セル3-6
タイトル4 セル4-1 セル4-2 セル4-3 セル4-4 セル4-5 セル4-6
td:nth-of-type(2n-1){
    background: #c0e0fc;
}

↑奇数列(2n-1)を指定しており、タイトル列が1列目、普通列が2列目から始まりますが、普通列の奇数列が指定されます。

また、CSSでは「td」を指定しているため「th」には適用されません。

任意で指定したいとき

「列数が増えたり減ったりしてもこの列を押さえておきたい!」というときは任意の各tdにclassを指定しましょう。

複雑な指定をしたいとき

  • n行目以降すべて
  • n行目まで
  • n行目からn行目まで

のように複雑な指定も可能です。

詳しくは下記記事を参考に「:nth-of-type(n)」を使いこなしてください。

【まとめ】奇数,偶数行・奇数,偶数列指定方法

:nth-of-type(n)を使い、nに指定したい行数・列数を入れる

  • 【偶数行】tr:nth-of-type(2n) td
  • 【奇数行】tr:nth-of-type(2n-1) td
  • 【偶数列】td:nth-of-type(2n)
  • 【奇数列】td:nth-of-type(2n-1)

以上、tableの奇数行・偶数行、奇数列・偶数列を指定する方法でした。

「この記事の内容がよくわからなかった…」「なんかうまくいかなかった…」というかたは下記記事↓でhtmlとCSSの基本を学びましょう。
わからないまま突き進むより基本を学ぶのが結局近道です。

CSSやhtmlをマンガで学ぶ