Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【HTML Living Standard】tbody要素の使い方

tbody要素の使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

tbodyオブジェクトは、HTMLのテーブル(表)の本体部分を表すオブジェクトです。これは、<table>要素内で使用され、表のヘッダーである<thead>要素やフッターである<tfoot>要素とは区別された、実際のデータを格納する主要な部分を定義します。tbodyを使用することで、テーブル内の複数の行(<tr>要素)を論理的なグループとしてまとめることができます。

このオブジェクトの主な目的は、テーブルの構造をセマンティックに明確にすることにあります。Webブラウザや検索エンジン、スクリーンリーダーなどの補助技術は、tbodyの存在によって、テーブルのどの部分が主要なデータであるかを正確に理解し、適切に処理できます。例えば、長いテーブルで<thead><tfoot>を固定しつつ、tbody部分だけをスクロールさせる、といった表示制御を容易にします。また、印刷時に<thead><tfoot>を各ページに繰り返し表示させながら、<tbody>の内容をページ分割する、といった高度なレイアウトを実現する際にも重要です。

tbodyオブジェクトは、1つ以上の<tr>要素を子要素として持ち、その<tr>要素の中にセル(<td>または<th>)が配置されます。<table>要素の直下には、通常、<caption>colgroup<thead><tbody><tfoot>の順で配置されますが、tbodyはテーブル本体の中核をなす部分として、テーブルデータの構造化に不可欠な要素です。

公式リファレンス: <tbody>: The Table Body element

構文(syntax)

1<table>
2  <tbody>
3    <tr>
4      <td>セルデータ1</td>
5      <td>セルデータ2</td>
6    </tr>
7    <tr>
8      <td>セルデータ3</td>
9      <td>セルデータ4</td>
10    </tr>
11  </tbody>
12</table>

引数(parameters)

引数なし

引数はありません

戻り値(return)

戻り値なし

戻り値はありません

サンプルコード

html tbodyとはテーブル本体を定義する

1<!DOCTYPE html>
2<html lang="ja">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>tbody要素のサンプル</title>
7    <style>
8        table {
9            width: 80%;
10            border-collapse: collapse;
11            margin: 20px auto;
12        }
13        th, td {
14            border: 1px solid #ddd;
15            padding: 8px;
16            text-align: left;
17        }
18        th {
19            background-color: #f2f2f2;
20        }
21        tfoot td {
22            font-weight: bold;
23            background-color: #eee;
24        }
25    </style>
26</head>
27<body>
28
29    <h1>商品リスト</h1>
30
31    <table>
32        <caption>商品の在庫状況</caption>
33        <thead>
34            <tr>
35                <th>商品ID</th>
36                <th>商品名</th>
37                <th>価格</th>
38                <th>在庫数</th>
39            </tr>
40        </thead>
41        <!-- tbody要素は、テーブルの本体部分をグループ化します。
42             <thead>(ヘッダー)と<tfoot>(フッター)とは別に、
43             テーブルの主要なデータ行を含みます。 -->
44        <tbody>
45            <tr>
46                <td>P001</td>
47                <td>ノートPC</td>
48                <td>120,000円</td>
49                <td>15</td>
50            </tr>
51            <tr>
52                <td>P002</td>
53                <td>ワイヤレスマウス</td>
54                <td>3,500円</td>
55                <td>50</td>
56            </tr>
57            <tr>
58                <td>P003</td>
59                <td>USBキーボード</td>
60                <td>5,800円</td>
61                <td>30</td>
62            </tr>
63        </tbody>
64        <tfoot>
65            <tr>
66                <td colspan="3">合計商品数</td>
67                <td>3種類</td>
68            </tr>
69        </tfoot>
70    </table>
71
72</body>
73</html>

HTMLのtbody要素は、<table>(テーブル)内で表の「本体」にあたる部分をグループ化するために使用されます。この要素は、テーブルの主要なデータ行(<tr>要素)を含み、表の構造を明確にする役割を担っています。

テーブルは通常、<thead>(ヘッダー部分)や<tfoot>(フッター部分)といった要素で構成されますが、tbodyはそれらとは別に、中心となる情報が並ぶ部分を定義します。例えば、商品リストのような表では、theadに「商品ID」「商品名」といった見出しが入り、tfootに「合計商品数」のような集計情報が入るのに対し、tbodyには個々の商品の詳細データが並びます。

これにより、ブラウザやスクリーンリーダーなどの支援技術がテーブルの論理的な構造をより正確に理解できるようになり、アクセシビリティの向上にも繋がります。また、CSSを使ってテーブルのヘッダー、本体、フッターそれぞれに異なるスタイルを適用しやすくなるため、デザイン面でも柔軟性が高まります。

ご提示のサンプルコードでは、「ノートPC」「ワイヤレスマウス」「USBキーボード」といった具体的な商品データが<tbody>内に配置されており、テーブルの本体部分として明確に区別されています。tbody要素には、特定の「引数」や「戻り値」という概念はありません。これは、HTMLがドキュメントの構造を定義するマークアップ言語であるためです。

<tbody>要素は、HTMLテーブルの主要なデータ行をグループ化するために使用されます。<thead>(テーブルヘッダー)や<tfoot>(テーブルフッター)と併用することで、テーブルの構造が意味的に整理され、コードの可読性やメンテナンス性が向上します。

初心者が注意すべき点として、<tbody>の直接の子要素には必ず<tr>(テーブル行)を配置し、その中に<td>(データセル)や<th>(ヘッダーセル)を記述してください。<tbody>内に直接<td><th>を記述することはできません。

また、<tbody>要素は省略可能ですが、アクセシビリティの向上やCSSによるスタイリング、JavaScriptでの動的なテーブル操作を容易にするためにも、積極的に利用することが推奨されます。これにより、テーブルの各セクションを明確に識別し、独立して操作できるようになります。

HTML tbodyタグでテーブル本体を構造化する

1<!DOCTYPE html>
2<html lang="ja">
3<head>
4    <meta charset="UTF-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>tbodyタグのサンプル</title>
7    <style>
8        /* 見やすいように簡単なスタイルを追加 */
9        table {
10            width: 80%;
11            border-collapse: collapse;
12            margin: 20px auto;
13        }
14        th, td {
15            border: 1px solid #ddd;
16            padding: 8px;
17            text-align: left;
18        }
19        th {
20            background-color: #f2f2f2;
21        }
22        caption {
23            font-size: 1.2em;
24            margin-bottom: 10px;
25        }
26    </style>
27</head>
28<body>
29    <!--
30        <table>要素内でtbodyタグはテーブルの本体(データ行)を定義します。
31        通常、<thead>(ヘッダー行)や<tfoot>(フッター行)と組み合わせて使用され、
32        テーブルの内容を構造化するのに役立ちます。
33    -->
34    <table>
35        <!-- テーブルのキャプション(表題) -->
36        <caption>月間売上レポート</caption>
37        <thead>
38            <!-- テーブルのヘッダー部分 -->
39            <tr>
40                <th>商品名</th>
41                <th>数量</th>
42                <th>単価</th>
43                <th>合計金額</th>
44            </tr>
45        </thead>
46        <tbody>
47            <!--
48                テーブルの本体部分(実際のデータ行)。
49                複数の<tr>要素(テーブル行)を含めることができます。
50            -->
51            <tr>
52                <td>ペン</td>
53                <td>100</td>
54                <td>50円</td>
55                <td>5,000円</td>
56            </tr>
57            <tr>
58                <td>ノート</td>
59                <td>50</td>
60                <td>120円</td>
61                <td>6,000円</td>
62            </tr>
63            <tr>
64                <td>消しゴム</td>
65                <td>75</td>
66                <td>80円</td>
67                <td>6,000円</td>
68            </tr>
69        </tbody>
70        <!-- <tfoot>(テーブルのフッター部分)も追加できますが、今回はtbodyの理解を優先し省略します。 -->
71    </table>
72</body>
73</html>

HTMLの<tbody>タグは、ウェブページでデータの一覧表示によく使われる「表(テーブル)」を作成する際に、その「本体」、つまりメインとなるデータ部分を定義するために使用されます。これは<table>要素の中に記述され、表の実際のデータ行をグループ化する重要な役割を持ちます。

このタグを使うことで、テーブルの見た目だけでなく、その構造を明確にすることができます。具体的には、表の項目名(ヘッダー)を示す<thead>タグや、合計値などを表示するフッター部分の<tfoot>タグと組み合わせることで、テーブルを論理的に「ヘッダー」「本体」「フッター」と分割し、管理しやすくなります。<tbody>タグの内部には、各データ行を表す複数の<tr>要素(テーブル行)が含まれ、その中に具体的なデータセルである<td>要素を配置します。

サンプルコードでは、「月間売上レポート」のテーブルにおいて、「ペン」「ノート」「消しゴム」といった各商品の売上データが<tbody>内にまとめられています。このように、<tbody>を使うことで、ヘッダー部分とデータ本体部分が明確に区別され、可読性が向上するだけでなく、JavaScriptでのデータ操作やCSSでのスタイル適用が構造的に行いやすくなります。<tbody>タグ自体に特別な引数や戻り値はなく、テーブルの構造化を目的とした要素です。

<tbody>タグは、HTMLテーブルの本体部分、すなわち実際のデータ行(<tr>要素)をグループ化するために使われる重要な要素です。このタグは必ず<table>要素の直下に配置し、<thead>(テーブルヘッダー)や<tfoot>(テーブルフッター)タグと組み合わせることで、テーブルの構造をより明確に定義します。初心者が間違いやすい点として、<tr>要素を直接<table>の子要素として記述せず、必ず<thead><tbody><tfoot>のいずれかの内部に配置するようにしてください。

<tbody>は省略してもブラウザが自動補完することがありますが、明示的に記述することでコードの可読性が向上し、テーブルの意味的な構造が明確になります。これにより、CSSによるスタイリングやJavaScriptでのデータ操作が容易になり、ウェブページのアクセシビリティも向上します。テーブルのデータ部分を正しく構造化することは、保守しやすく、より堅牢なHTMLを作成する上で不可欠なポイントです。

関連コンテンツ

関連IT用語

関連プログラミング言語