0Pricing
HTML Academy · レッスン

table、tr、td、th

行、データセル、見出しセルを使って基本的なテーブルを作成します。

「table、tr、td、th」はCoddyKit上の無料HTML Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはHTML Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 HTML Academyコースには全4レッスンが含まれています。

HTMLテーブル

テーブルは、データを行と列で表示します。ページレイアウトではなく、表形式のデータに使います。

<table>
  <tr>
    <th>Name</th>
    <th>Score</th>
  </tr>
  <tr>
    <td>Alice</td>
    <td>95</td>
  </tr>
  <tr>
    <td>Bob</td>
    <td>87</td>
  </tr>
</table>

table、tr、td要素

テーブルの基本要素:

  • <table> — テーブルのコンテナー
  • <tr> — テーブルの行
  • <td> — テーブルのデータセル
  • <th> — テーブルの見出しセル(デフォルトで太字・中央揃え)

thとtdの違い

見出しセルには<th>を使います。<th>には意味論的な意味があるためです:

<table>
  <tr>
    <th>Language</th>    <!-- header: bold + centered by default -->
    <th>Year Created</th>
    <th>Type</th>
  </tr>
  <tr>
    <td>HTML</td>         <!-- data cell -->
    <td>1991</td>
    <td>Markup</td>
  </tr>
</table>

基本的なテーブル構造

最小限ですが完全なテーブル:

<table>
  <tr>
    <th>Product</th>
    <th>Price</th>
    <th>Stock</th>
  </tr>
  <tr>
    <td>Widget Pro</td>
    <td>$49.99</td>
    <td>In Stock</td>
  </tr>
  <tr>
    <td>Widget Lite</td>
    <td>$19.99</td>
    <td>Out of Stock</td>
  </tr>
</table>

CSSによるテーブルの境界線

ブラウザーはデフォルトでは、境界線なしでテーブルを表示します。CSSで追加します:

table {
  border-collapse: collapse;  /* merge double borders into one */
  width: 100%;
}

th, td {
  border: 1px solid #ddd;
  padding: 0.75rem 1rem;
  text-align: left;
}

th {
  background-color: #f5f5f5;
  font-weight: 600;
}

テーブルをレイアウトに使わない理由

1990年代には、ページレイアウトにテーブルが使われていました。これは現在では古く、問題のある方法です:

  • スクリーンリーダーはテーブルをデータとして解釈するため、レイアウト用テーブルはユーザーを混乱させます
  • テーブルは小さな画面では柔軟に対応できません
  • CSS GridとFlexboxによって、レイアウトに必要なすべての用途が置き換えられました
  • <table>は実際の表形式データにのみ使います

レスポンシブなテーブル

テーブルは小さな画面からはみ出します。横スクロールできるように、テーブルをラップします:

<div class="table-wrapper" style="overflow-x: auto;">
  <table>
    <!-- table content -->
  </table>
</div>

/* Or use CSS: */
.table-wrapper {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

空のセル

空のセルは意図的に扱います:

<tr>
  <td>Alice</td>
  <td>95</td>
  <td></td>          <!-- Empty: renders blank -->
</tr>

/* CSS to style empty cells */
td:empty::before {
  content: '—';
  color: #999;
}

theadとtbodyのプレビュー

テーブルでは、<thead>と<tbody>を使って見出し行とデータ行を分けます。詳しくは次のレッスンで説明します:

<table>
  <thead>
    <tr><th>Name</th><th>Score</th></tr>
  </thead>
  <tbody>
    <tr><td>Alice</td><td>95</td></tr>
  </tbody>
</table>

colとcolgroupによる列のスタイル設定

<colgroup>と<col>を使うと、列全体にスタイルを適用できます:

<table>
  <colgroup>
    <col style="width: 200px; background: #f9f9f9;">
    <col style="width: 100px;">
    <col style="width: 100px;">
  </colgroup>
  <tr>
    <th>Name</th>
    <th>Score</th>
    <th>Grade</th>
  </tr>
</table>

CSSによるゼブラストライプ

読みやすくするために、行の色を交互に変えます:

tbody tr:nth-child(odd) {
  background-color: #f9f9f9;
}

tbody tr:hover {
  background-color: #e3f2fd;
}

/* nth-child(even) for even rows instead */

確認問題

テーブルにおけるtdとthの違いは何ですか?

振り返り:table、tr、td、th

テーブルの基本:

  • <table> — テーブルのコンテナー
  • <tr> — テーブルの行
  • <td> — データセル
  • <th> — 見出しセル(意味論的な要素で、デフォルトでは太字)
  • 境界線をきれいに表示するには、border-collapse: collapseを使います
  • テーブルはデータ専用であり、ページレイアウトには使いません

よくある質問

「table、tr、td、th」レッスンは無料ですか?

はい。「table、tr、td、th」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、HTML Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 HTML Academyコースには全4レッスンが含まれています。

「table、tr、td、th」で何を学びますか?

行、データセル、見出しセルを使って基本的なテーブルを作成します。 ブラウザで直接実行するハンズオンコードでHTML Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

HTML Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのHTML Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「table、tr、td、th」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このHTML Academyレッスンでコードを書いて実行できますか?

はい。すべてのHTML Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. table、tr、td、th
  2. thead、tbody、tfootの構造
  3. 結合のためのcolspanとrowspan
  4. テーブルのアクセシビリティ:scope、summary、caption
← HTML Academyに戻る