ひとりでのアプリ開発 - fineの備忘録 -

ひとりでアプリ開発をするなかで起こったことや学んだことを書き溜めていきます

Web開発 - HTML:テーブル

初めに

 本記事は、HTMLにおけるテーブルの作り方を学びます。罫線やセルの結合、列のグループ化などについても触れます。

テーブルの基本

 HTMLのテーブルは複数の要素を使って構成されます。

<table>
  <caption>映画一覧</caption>
  <thead>
    <tr>
      <th>タイトル</th>
      <th>監督</th>
      <th>公開年</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>インセプション</td>
      <td>クリストファー・ノーラン</td>
      <td>2010</td>
    </tr>
    <tr>
      <td>ラ・ラ・ランド</td>
      <td>デミアン・チャゼル</td>
      <td>2016</td>
    </tr>
    <tr>
      <td>ハリー・ポッターと賢者の石</td>
      <td>クリス・コロンバス</td>
      <td>2001</td>
    </tr>
  </tbody>
</table>

(表示結果)

 ブラウザによっては、罫線が引かれている場合もあります。

要素 説明
<table> テーブルを作成
<caption> テーブルのタイトル
<thead> テーブルの見出し(ヘッダー)
<tbody> テーブルの本体
<tr> 行の定義
<th> ヘッダーセルの定義
<td> セルの作成

フッター

 <tfoot>要素を使ってフッターを作ることができます。

<table border="1">
  <thead>
    <tr>
      <th>名前</th>
      <th>年齢</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>太郎</td>
      <td>25</td>
    </tr>
    <tr>
      <td>花子</td>
      <td>30</td>
    </tr>
  </tbody>
  <tfoot>
    <tr>
      <td>人数合計</td>
      <td>2人</td>
    </tr>
    <tr>
      <td>年齢合計</td>
      <td>55</td>
    </tr>
  </tfoot>
</table>


罫線

 <table>要素に border 属性をつけることで、テーブルの罫線を制御できます。属性は整数値で罫線の太さ(ピクセル)を指定します。

<table border="1">
  <tr>
    <td>セル1</td>
    <td>セル2</td>
  </tr>
  <tr>
    <td>セル3</td>
    <td>セル4</td>
  </tr>
</table>

 罫線を二重ではなく、1本線にするには、style 属性を使う必要があります。

 本当は style 属性を使わず、CSSを使って指定することが望ましいです。

セルの結合

 セルの結合を行うには、colspan 属性(列の結合)と rowspan 属性(行の結合)を使用します。指定されている整数値の個数のセルを結合します。

<table border="1">
  <tr>
    <td>セル1</td>
    <td colspan="2">列の結合がされたセル</td>
    <td>セル2</td>
  </tr>
  <tr>
    <td rowspan="2">行の結合が<br>されたセル</td>
    <td>セル3</td>
    <td>セル4</td>
    <td>セル5</td>
  </tr>
  <tr>
    <td>セル6</td>
    <td>セル7</td>
    <td>セル8</td>
  </tr>
</table>


列のグループ化

 <colgroup>要素は、HTMLのテーブルで列のグループ化を行うための要素です。通常、<colgroup>要素は<table>要素の直後に配置され、その中に<col>要素を使用して列の幅やスタイルを設定します。

<table border="1">
  <colgroup>
    <col style="background-color: lightblue;">
    <col span="2" style="background-color: lightgreen;">
  </colgroup>
  <tr>
    <td>列1</td>
    <td>列2</td>
    <td>列3</td>
  </tr>
  <tr>
    <td>データ1</td>
    <td>データ2</td>
    <td>データ3</td>
  </tr>
</table>


<table border="0">
  <colgroup>
    <col style="background-color: lightblue;">
    <col style="background-color: lightgreen;">
    <col style="background-color: lightcoral;">
    <col style="background-color: lightsalmon;">
    <col style="background-color: lightseagreen;">
  </colgroup>
  <tr>
    <td>列1</td>
    <td>列2</td>
    <td>列3</td>
    <td>列4</td>
    <td>列5</td>
  </tr>
  <tr>
    <td>データ1</td>
    <td>データ2</td>
    <td>データ3</td>
    <td>データ4</td>
    <td>データ5</td>
  </tr>
</table>