HTMLテーブルの作り方【table・tr・td解説】

HTMLテーブルの作り方を初心者向けに解説。table・tr・th・tdの基本からセル結合・CSSでのデザイン方法までコード例で紹介。時間割や成績表を作ってみよう。中高生向け。無料。

2026年4月16日

HTML テーブルとは?

ウェブページでよく見る「表」は、HTML テーブルで作られています。時間割・成績表・商品一覧など、データを行と列に整理して表示するときに使います。

この記事では、HTMLテーブルの作り方を初心者向けにわかりやすく解説します。tabletrthtd の4つのタグを覚えれば、基本的な表が作れます。

テーブルを作る4つのタグ

タグ 意味・役割
<table>テーブル全体を囲む
<tr>1行(table row)
<th>見出しセル(table header)。太字・中央揃えになる
<td>データセル(table data)

基本のテーブル

<table>
  <tr>
    <th>名前</th>
    <th>教科</th>
    <th>点数</th>
  </tr>
  <tr>
    <td>田中</td>
    <td>数学</td>
    <td>85点</td>
  </tr>
  <tr>
    <td>鈴木</td>
    <td>英語</td>
    <td>92点</td>
  </tr>
</table>

▶ プレビュー

構造は「テーブル全体 → 行 → セル」の順で入れ子にします。

📖 詳しくはdivとspanの違いで解説しています。

thead・tbody・tfootで構造を整える

大きなテーブルでは、<thead>(ヘッダー行)・<tbody>(データ行)・<tfoot>(フッター行)で区分けすると、コードが読みやすくなります。

<table>
  <thead>
    <tr>
      <th>商品名</th>
      <th>価格</th>
      <th>個数</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>りんご</td>
      <td>150円</td>
      <td>3個</td>
    </tr>
    <tr>
      <td>バナナ</td>
      <td>200円</td>
      <td>1本</td>
    </tr>
  </tbody>
  <tfoot>
    <tr>
      <td>合計</td>
      <td>650円</td>
      <td>—</td>
    </tr>
  </tfoot>
</table>

セルを結合する(colspan・rowspan)

複数のセルを1つにまとめることができます。

  • colspan="数":横方向に結合(列をまたぐ)
  • rowspan="数":縦方向に結合(行をまたぐ)
<table>
  <tr>
    <th colspan="2">前期(4〜9月)</th>
  </tr>
  <tr>
    <td>4月</td>
    <td>5月</td>
  </tr>
</table>

👉 ブロック要素とインライン要素も参考にしてください。

CSSでテーブルをデザインする

table {
  width: 100%;
  border-collapse: collapse; /* セル間の隙間をなくす */
}

th, td {
  border: 1px solid #ccc;
  padding: 10px 16px;
  text-align: left;
}

th {
  background-color: #0d9488;
  color: white;
}

tr:nth-child(even) {
  background-color: #f0f9ff; /* 偶数行に背景色 */
}

border-collapse: collapse を指定すると、セルの境界線が重ならずきれいに表示されます。

🔥 HTMLリンクの作り方で実践してみましょう。

テーブルをCSSで見やすくするコツ

HTMLだけで作ったテーブルは、枠線がなくて見にくいことがあります。CSSを使って見やすく整えましょう。

コツ1:枠線をつける

border-collapseプロパティをcollapseに設定すると、セル同士の枠線が1本にまとまります。これがないと、枠線が二重に表示されてしまいます。

コツ2:余白を入れる

セルの中にpaddingを設定すると、文字と枠線の間に余白ができて読みやすくなります。8px〜12pxくらいがおすすめです。

コツ3:交互に背景色をつける

偶数行と奇数行で背景色を変えると、行を目で追いやすくなります。CSSの擬似クラス「nth-child(even)」を使えば、偶数行だけに色をつけられます。

コツ4:ヘッダー行を目立たせる

theadの中のセルに背景色をつけたり、文字を太字にしたりすると、見出し行が一目でわかります。

テーブルを使うべき場面と使わない場面

テーブルは「データを表形式で見せたいとき」に使います。たとえば時間割、成績表、料金表、比較表などです。

一方、ページのレイアウト(横並びや段組み)にテーブルを使うのは避けましょう。昔はテーブルでレイアウトを組むことがありましたが、今はflexboxやグリッドを使うのが正しい方法です。テーブルはあくまで「表データ」のためのタグです。

テーブルのアクセシビリティ

テーブルを作るとき、アクセシビリティ(誰にとっても使いやすいこと)にも気を配りましょう。

ポイント1:theadとtbodyを使い分ける

theadで見出し行、tbodyでデータ行を囲みます。スクリーンリーダーがテーブルの構造を正しく読み上げるために必要です。

ポイント2:thタグを使う

見出しセルにはtdではなくthタグを使いましょう。thタグを使うと、スクリーンリーダーが「これは見出しです」と認識してくれます。

ポイント3:captionタグでテーブルの説明を書く

tableタグの直後にcaptionタグを書くと、テーブルの内容を説明するタイトルをつけられます。「2年3組の時間割」のように、何のテーブルかがわかる説明を書きましょう。

スマホでテーブルを見やすくする工夫も大切です。テーブルは横幅が広くなりがちなので、スマホでは画面からはみ出すことがあります。親要素にoverflow-x: auto;を設定すると、横スクロールで全体を見られるようになります。ユーザーが情報を見逃さないための配慮です。

まとめ

  • <table><tr><th> / <td> の順で入れ子にする
  • <thead><tbody><tfoot> で構造を整理できる
  • colspan で横結合、rowspan で縦結合
  • border-collapse: collapse でセルの境界線をきれいにする
  • tr:nth-child(even) で偶数行に背景色をつけると読みやすくなる

HTMLの基礎はHTML入門で復習できます。テーブルのストライプ模様はnth-childセレクタで実装できます。

あわせて読みたい記事

🎯 次のステップ

テーブルの基本を覚えたら、CSSで見た目を整えよう!

CSS nth-child入門へ →
目次

コースで実際に手を動かして学ぼう

レッスンではコードを書きながら基礎が身につきます

HTMLコースを始める →

この記事に出てくる用語

📣 この記事が役に立ったら

Xでシェア

💬 引用する場合はこちらをご利用ください:

HTMLテーブルの作り方を初心者向けに解説。table・tr・th・tdの基本からセル結合・CSSでのデザイン方法までコード例で紹介。時間割や成績表を作ってみよう。中高生向け。無料。

出典: https://start-web-programming.com/blog/html-table/