X

【CSS】テーブルの背景色を交互に変える

CSSでテーブルの背景色を変えるシステム開発備忘録です。
と言うは、極たまにしか使わないので、忘れてしまうことが多くて。。。

<html>
<head>
  <style>
    #tableA tr:nth-child(odd) td {  
      background-color: #FF8888;  
    }
    #tableA tr:nth-child(even) td {  
      background-color: #88FF88;  
    }  
  </style>
</head>
<body>
  <table id="tableA">
    <tr>
      <td>セルA1</td><td>セルA2</td><td>セルA3</td>
    </tr>
    <tr>
      <td>セルB1</td><td>セルB2</td><td>セルB3</td>
    </tr>
    <tr>
      <td>セルC1</td><td>セルC2</td><td>セルC3</td>
    </tr>
    <tr>
     <td>セルD1</td><td>セルD2</td><td>セルD3</td>
    </tr>
    <tr>
      <td>セルE1</td><td>セルE2</td><td>セルE3</td>
    </tr>
   </table>
  </body>
</html>

これは、疑似クラスの:nth-child(n)を使っています。
まず、疑似クラスとは、要素が特定の状態にある場合にスタイルを指定するものです。

例としてよく使われているaタグに使う疑似クラスを挙げます。
a:link{}
リンクする要素(a要素)のうち、まだ見ていない(キャッシュされていない)要素に対してスタイルを適用させます。
a:visited{}
リンクする要素(a要素)のうち、既に見た(キャッシュされている)要素に対してスタイルを適用させます。

今回のnth-child(n)は疑似クラスは指定した要素内のn番目の子要素にスタイルを適用することができます。
nにはodd、evenの他に数字や2nのように計算式を入れる事もできます。

#tableA tr:nth-child(odd) td で記述したセレクタは、
#tableAのtrのnth-child(odd)奇数行の状態にあるtdに対して、スタイルを適用することになります。

この辺りの詳細な説明は、ググってもらった方が良いですね。

尚、古いブラウザでは動かないことが有ります。例えばIE8とかの古いブラウザとかでは。
この辺りも別途考慮の必要?が有るなら調べて使用してください。

以上、【CSS】テーブルの背景色を交互に変える、CSSの備忘録でした。

itsysgroup:
Related Post