HTML講座 / table・tr・th・tdで表を作る

HTMLの表はtableの中に行のtrを置き、見出しセルをth、データセルをtdで表します。まずデータの行と列の関係を決め、罫線や色などの見た目はCSSで調整します。

行と列を持つ基本の表

例は果物の在庫を表す架空のデータです。最初の行が列の名前で、以降の行が果物と数量の組になっています。次をHTML文書のbodyへ入れます。

<table>
  <tr>
    <th>Fruit</th>
    <th>Stock</th>
  </tr>
  <tr>
    <td>Apples</td>
    <td>12 pieces</td>
  </tr>
  <tr>
    <td>Pears</td>
    <td>8 pieces</td>
  </tr>
</table>

一つのtrが横一行になり、セルが左から並びます。初期表示では罫線が目立たないこともありますが、表が壊れているとは限りません。新しい果物を加える場合は、名前と数量を含む行を一つ追加します。先に紙などで行列を整理すると、セルの不足を見つけやすくなります。

見出し行とデータ行をまとめる

theadは見出し行、tbodyはデータ行のグループです。合計などのまとめにはtfootを使えます。次の例は基本の表と同じデータを明示的にグループ化しています。

<table>
  <thead>
    <tr><th>Fruit</th><th>Stock</th></tr>
  </thead>
  <tbody>
    <tr><td>Apples</td><td>12 pieces</td></tr>
    <tr><td>Pears</td><td>8 pieces</td></tr>
  </tbody>
</table>

これらは行の構造を表し、背景色や罫線を自動で指定するものではありません。HTMLソースでtbodyを省略していても、ブラウザーがDOMに追加する場合があります。開発者ツールの構造と、保存したソースの表記が違うことを区別して確認します。

見出しとデータを区別し、幅を調整する

thは行や列を識別する見出し、tdは対応する値です。太字にしたいだけでthを選びません。数量には単位を添えるか、見出し側で単位を説明し、12が個数か金額かを判断できるようにします。

広い表は次の包みとCSSで横スクロールさせられます。最初のコードのコメント位置へ、すでに作った表の行を入れてください。

<div class="table-scroll">
  <table>
    <!-- Place the preceding table rows here. -->
  </table>
</div>
.table-scroll { max-width: 100%; overflow-x: auto; }

caption、scope、セル結合は読みやすい表の構造で扱います。MDNのtable要素でも関連する属性を確認できます。

セルの位置がずれる場合

各行のセル数が予定した列数と一致するかを確認します。セルが足りないと、値が別の見出しの下へ入ってしまいます。列幅を合わせるためにスペースを何個も入れず、CSSで見た目を調整してください。

狭い画面で切れるときは、データを消したり極端に小さくしたりする前に、横スクロールを検討します。表はデータの関係を表すために使い、ページ全体の配置にはCSSのレイアウトを使います。

같은 카테고리의 다른 글
HTML講座 / figureとfigcaptionで図と説明をまとめる

HTML講座 / figureとfigcaptionで図と説明をまとめる

図とキャプションを一つのまとまりとして表す方法を学びます。altとキャプションの役割、出典の示し方、figureを使わなくてもよい場面も説明します。

HTML講座 / required・文字数・範囲で入力値を検証する

HTML講座 / required・文字数・範囲で入力値を検証する

必須入力、文字数、数値の範囲と刻み、メール形式の制約を学びます。境界値を試し、ブラウザーの案内とサーバー側の検証を分けて考える方法も説明します。

HTML講座 / table・tr・th・tdで表を作る

HTML講座 / table・tr・th・tdで表を作る

行と列を持つデータをHTMLの表で表す基本を学びます。見出しセルとデータセル、theadとtbody、横幅が広い表のスクロール方法も紹介します。

HTML講座 / srcset・sizes・pictureでレスポンシブ画像を作る

HTML講座 / srcset・sizes・pictureでレスポンシブ画像を作る

同じ構図の解像度選択と、画面幅に応じた構図変更を区別して学びます。w記述子、ピクセル密度、currentSrcによる確認方法と、キャッシュが比較に与える影響も解説します。

HTML講座 / テキストの意味を表すem・strong・引用・コード

HTML講座 / テキストの意味を表すem・strong・引用・コード

emとstrong、qとblockquote、abbr、code、kbdの違いを学びます。太字や斜体という見た目ではなく、文章中の役割に合わせて要素を選ぶ方法を説明します。

HTML講座 / HTMLアクセシビリティの基本を確認する

HTML講座 / HTMLアクセシビリティの基本を確認する

見出し、リンク、画像、フォームを意味のあるHTMLで作る方法を学びます。スキップリンク、キーボード、フォーカス、ズームを確認する小さなページと、検査の限界も紹介します。

HTML講座 / リンクの作成、相対パスとページ内移動

HTML講座 / リンクの作成、相対パスとページ内移動

aとhrefによるリンク、絶対URLと相対URL、ページ内の移動を学びます。新しいタブ、メール、ダウンロードの条件と、三つのファイルでパスを確認する実習も紹介します。

HTML講座 / タイトル・説明・言語・文字コードを設定する

HTML講座 / タイトル・説明・言語・文字コードを設定する

title、meta description、charset、viewportとhtmlのlangを整理します。タブと本文の違い、文字化けの調査、検索結果の説明が必ず採用されるわけではない点も学べます。

HTML講座 / textarea・select・option・buttonを使う

HTML講座 / textarea・select・option・buttonを使う

複数行入力、選択メニュー、送信・リセット・通常ボタンを使い分けます。表示ラベルと送信値、初期値と現在値を実際のフォームで比較する方法も紹介します。

HTML講座 / divとspanはいつ使うのか

HTML講座 / divとspanはいつ使うのか

divとspanの内容モデルと使い分けを学びます。CSSのdisplayを変えてもHTMLの親子関係の規則は変わらないことや、意味のある要素を優先する基準も説明します。