テーブルの基本

HTMLではtableタグを使って表を作成することができます。

tableタグの基本構造

tableタグは、いくつかのタグで構成されています。

  • table:テーブルの大枠
  • tr:行のまとまり
  • th:タイトルのセル
  • td:通常のセル

table

tableタグは、テーブルの一番外側のタグです。

<table>
</table>

tr

trタグは行を表示するタグで、tableの中に入れます。

<table>
    <tr></tr>
</table>

td / tdタグ

thtdタグはセルを表示するタグで、trタグの中に入れます。thは表のタイトルになります。

<table>
    <tr>
        <th>タイトル</th>
        <td>コンテンツ</td>
    </tr>
</table>

テーブルを作成してみる

ファイル構成

./table.html

テーブルの概要

商品名と価格を、tableタグで表示してみましょう。

商品名 価格
コーヒー ¥120
紅茶 ¥150
ほうじ茶 ¥130

行の追加

tableタグの入力

まず、tableタグを入力します。

<table>

</table>

trタグの入力

trタグを入力します。

table.html
<table>
  <tr>
  </tr>
</table>

タイトルの追加

thタグの入力

trタグの中に、「商品名」の thタグを入力します。

table.html
<table>
  <tr>
    <th>商品名</th>
  </tr>
</table>

同様に「価格」の thタグも入力します。

<table>
  <tr>
    <th>商品名</th>
    <th>価格</th>
  </tr>
</table>

親子要素のセレクタ

Emmetを使うとテーブルを効率よく入力できます。*>*は、親子要素のセレクタを表します。

親要素>子要素

tr>td のEmmet

tr>td の親子要素はつぎのとおりです。

<tr>
    <td></td>
</tr>

「価格」の行の下で、Emmetで入力します。

trタグとtdタグが親子要素で入力できました。

<table>
  <tr>
    <th>商品名</th>
    <th>価格</th>
  </tr>
  <tr>
    <td></td>
  </tr>
</table>

tdタグに文字列を入力します。

<table>
  <tr>
    <th>商品名</th>
    <th>価格</th>
  </tr>
  <tr>
    <td>コーヒー</td>
  </tr>
</table>

テーブルの完成形

テーブルを完成させてみましょう。

<table>
  <tr>
    <th>商品名</th>
    <th>価格</th>
  </tr>
  <tr>
    <td>コーヒー</td>
    <td>¥120</td>
  </tr>
  <tr>
    <td>紅茶</td>
    <td>¥150</td>
  </tr>
  <tr>
    <td>ほうじ茶</td>
    <td>¥130</td>
  </tr>
</table>

tableタグの確認

ブラウザでテーブル表示されるか確認しましょう。thタグはデフォルトで太字になっています。

thead / tbody

ヘッダー部分をtheadタグ、データ部分をtbodyタグでまとめることができます。

<table>
  <thead>
    <tr>
      <th>商品名</th>
      <th>価格</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>コーヒー</td>
      <td>¥120</td>
    </tr>
    <tr>
      <td>紅茶</td>
      <td>¥150</td>
    </tr>
  </tbody>
</table>

セルの結合

colspan

colspanはセルの列を結合します。

<td colspan="結合する数"></td>

colspanの例

<table>
  <tr>
    <th colspan="2">関東</th>
  </tr>
  <tr>
    <td>東京</td>
    <td>とうきょう</td>
  </tr>
  <tr>
    <td>神奈川</td>
    <td>かながわ</td>
  </tr>
</table>

rowspan

rowspan はセルの行を結合します。

<td colspan="結合する数"></td>

colspanの例

<table>
  <tr>
    <th rowspan="4">関東</th>
  </tr>
  <tr>
    <td>東京</td>
  </tr>
  <tr>
    <td>神奈川</td>
  </tr>
  <tr>
    <td>千葉</td>
  </tr>
</table>

tableレイアウト(アンチパターン)

テーブルレイアウトとは

「ヘッダー」「メニュー」「メイン」などを、tableタグで構成することをテーブルレイアウトといい、HTMLの悪い例です。

ヘッダー
サイドバー コンテンツ
フッター

テーブルレイアウト(悪い例)

一見、綺麗にレイアウトできているように見えますが、HTMLソースが見にくく、複雑になってしまう悪い例です。

table.html
<table border="0" cellspacing="0" cellpadding="0" width="760">
  <tr>
    <td colspan="2" style="background: red; height=50px">
      ヘッダー
    </td>
  </tr>
  <tr>
    <td style="background: green; width: 200px;">
      サイドバー
    </td>
    <td style="background: white; height: 300px">
      コンテンツ
    </td>
  </tr>
  <tr>
    <td colspan="2" style="background: darkgray;">
      フッター
    </td>
  </tr>
</table>

アンチパターン

このように動作はするが、よくないコーディングや設計のことをアンチパターンといいます。