テーブルを使いこなそう

目次

最も基本的なテーブル

テーブル(表)を作成するには主に次のタグを用います。

HTML
<table border="1">
  <tr><th></th><th></th><th>年齢</th></tr>
  <tr><td>山田</td><td>太郎</td><td>36</td></tr>
  <tr><td>鈴木</td><td>花子</td><td>32</td></tr>
</table>
表示
年齢
山田太郎36
鈴木花子32

項目を連結するには

<td colspan=n> を用いると、右方向に n 個のセルを連結することができます。

HTML
<table border="1">
  <tr><th colspan="2">姓名</th><th>年齢</th></tr>
  <tr><td>山田</td><td>太郎</td><td>36</td></tr>
  <tr><td>鈴木</td><td>花子</td><td>32</td></tr>
</table>

これをブラウザで表示すると次のようになります。

表示
姓名年齢
山田太郎36
鈴木花子32

<td rowspan=n> を用いると、縦方向に n 個のセルを連結することができます。

HTML
<table border="1">
  <tr><th>姓</th><th>名</th><th>年齢</th></tr>
  <tr><td rowspan="2">山田</td><td>太郎</td><td>36</td></tr>
  <tr><td>花子</td><td>32</td></tr>
</table>
表示
年齢
山田太郎36
花子32

テーブルの枠線を細くするには

border-collapse を用いることで、テーブルの枠線を細くすることができます。

HTML
<table border="1" style="border-collapse:collapse;">
  <tr><th>姓</th><th>名</th><th>年齢</th></tr>
  <tr><td>山田</td><td>太郎</td><td>36</td></tr>
  <tr><td>鈴木</td><td>花子</td><td>32</td></tr>
</table>
表示
年齢
山田太郎36
鈴木花子32

色付きのテーブル

<tr><th><td>background-color を指定してテーブルに色をつけることができます。

HTML
<table border="1">
  <tr style="background-color:#ccf;"><th>姓</th><th>名</th><th>年齢</th></tr>
  <tr><td>山田</td><td>太郎</td><td>36</td></tr>
  <tr><td>鈴木</td><td>花子</td><td>32</td></tr>
</table>
表示
年齢
山田太郎36
鈴木花子32

セルの幅

<th><td>width を指定してセルの横幅を指定することができます。

HTML
<table border="1">
  <tr><th style="width:5rem;">姓</th><th style="width:5rem;">名</th><th style="width:3rem;">年齢</th></tr>
  <tr><td>山田</td><td>太郎</td><td>36</td></tr>
  <tr><td>鈴木</td><td>花子</td><td>32</td></tr>
</table>
表示
年齢
山田太郎36
鈴木花子32

右寄せ

<tr><th><td>text-align を指定して右寄せすることができます。

HTML
<table border="1">
  <tr><th style="width:5rem;">姓</th><th style="width:5rem;">名</th><th style="width:3rem;">年齢</th></tr>
  <tr><td>山田</td><td>太郎</td><td style="text-align:right;">36</td></tr>
  <tr><td>鈴木</td><td>花子</td><td style="text-align:right;">32</td></tr>
</table>
表示
年齢
山田太郎36
鈴木花子32

スタイルシート(CSS)を用いた実装

上記では分かりやすさのために border="1" を用いた例を紹介していますが、実は、border 属性は現在では廃止されていて、代わりに スタイルシート(CSS) を用いた記述が求められています。下記に、スタイルシートを用いてテーブルのスタイルを指定する例を示します。一度スタイルを指定しておけば、class="my-table" を指定したすべてのテーブルに同じスタイルが適用されます。詳細は「とほほのCSS入門」を参照してください。

HTML
<!DOCTYPE html>
<html lang="ja">
  <head>
    <title>HTMLの練習</title>
    <style>
    .my-table {                       /* class="my-table" を指定した要素に対して */
      border-collapse: collapse;      /* 枠線を細くする */
      th, td {                        /* th と td に対して */
        border: 1px solid #999;       /* 枠線を引く */
      }
      th {                            /* th に対しては */
        background-color: #ccf;       /* 背景を薄青にする */
      }
      td:nth-child(1) {               /* td の1列目は */
        width: 5rem;                  /* 幅を5文字分にする */
      }
      td:nth-child(2) {               /* td の2列目は */
        width: 5rem;                  /* 幅を5文字分にする */
      }
      td:nth-child(3) {               /* td の3列目は */
        width: 3rem;                  /* 幅を3文字分にして */
        text-align: right;            /* テキストを右寄せにする */
      }
    }
    </style>
  </head>
  <body>
    <table class="my-table">
      <tr><th>姓</th><th>名</th><th>年齢</th></tr>
      <tr><td>山田</td><td>太郎</td><td>36</td></tr>
      <tr><td>鈴木</td><td>花子</td><td>32</td></tr>
    </table>
  </body>
</html>
表示
年齢
山田太郎36
鈴木花子32