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講座 / caption・scope・セル結合で読みやすい表を作る

HTML講座 / caption・scope・セル結合で読みやすい表を作る

表の題名、列見出しと行見出し、colspanとrowspanの関係を学びます。色や位置だけに依存せず、一つの値に対応する見出しを判断できる表を目指します。

HTML講座 / labelとinputを正しく関連付ける

HTML講座 / labelとinputを正しく関連付ける

labelのforとinputのidを対応させる方法を学びます。idと送信時のnameの違い、重複IDの問題、placeholderがラベルの代わりにならない理由も説明します。

HTML講座 / HTMLとは何か、Webページでの役割を理解する

HTML講座 / HTMLとは何か、Webページでの役割を理解する

HTMLで文書の意味と構造を表す方法を、CSS・JavaScriptとの違いとともに学びます。実際にHTMLファイルを保存して、ブラウザーで確認する手順も紹介します。

HTML講座 / detailsとsummaryで開閉できる説明を作る

HTML講座 / detailsとsummaryで開閉できる説明を作る

JavaScriptなしで開閉する補足説明を作ります。open属性の真偽、分かりやすいsummaryの書き方、Tab・Enter・Spaceによる操作の確認方法も紹介します。

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

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

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

HTML講座 / 複数ページで小さなWebサイトを作る

HTML講座 / 複数ページで小さなWebサイトを作る

ホーム・紹介・問い合わせ練習の三ページを作り、共通メニューと現在位置を設定します。フォームは送信値の確認用とし、相対リンク、入力制約、キーボード、文法を点検します。

HTML講座 / セマンティック要素でページの領域を分ける

HTML講座 / セマンティック要素でページの領域を分ける

header、nav、main、article、section、aside、footerの役割を学びます。見た目の配置と意味を区別し、複数のナビゲーションを識別する方法も紹介します。

HTML講座 / メール・数値・日付・選択肢に合うinputの型

HTML講座 / メール・数値・日付・選択肢に合うinputの型

email、number、date、checkbox、radioの使い分けを学びます。見える入力UIと送信値、初期値と現在値の違いを、フォームデータの確認とともに説明します。

HTML講座 / HTML文書の基本構造

HTML講座 / HTML文書の基本構造

doctype、html、head、bodyの役割と、文字コード・文書タイトル・viewportの設定を解説します。ファイルの保存から表示確認、表示されない場合の調べ方まで学べます。

HTML講座 / HTMLのエラーを探して文書を検査する

HTML講座 / HTMLのエラーを探して文書を検査する

Nu HTML Checkerの使い方と、重複IDを含む失敗例の修正を学びます。エラー位置の読み方、保存したファイルとサーバーの出力、構文と実際の操作の違いも解説します。