<table> - テーブル(表)

■ 概要

項  目説  明
記述形式 <table>~</table>
対応ブラウザー H3+ / e2+ / N2+ / Fx1+ / Op6+ / Ch1+ / Sa1+
種  類
(カテゴリー)
フロー・コンテンツパルパブル・コンテンツ
置ける場所 フロー・コンテンツが記入できる場所
内包要素
(コンテンツ・モデル)
次の順で各要素を入れる
 ① 1個(任意)の caption要素
 ② 0個以上の colgroup要素
 ③ 1個(任意)の thead要素
 ④ 1個(任意)の tfoot要素
 ⑤ 0個以上の tbody要素,  または,1個以上の tr要素
 ⑥ 1個(任意)の tfoot要素 [ただし,tfoot要素は table要素内で1つのみ]
  (コンテンツ・モデル: 直接指定

■ 解説

基本的な表(テーブル)は,table要素,caption要素tr要素th要素td要素の5つで作成できます。

上の表に示す通り,これら以外に colgroup要素thead要素tfoot要素tbody要素を用いることで,大きな表をいくつかの部分に分けてそれぞれ役割を特定する,より一般的な形式で記述することが出来ます。

HTMLで表(テーブル)を作る場合,セルの割付や各セルの内容をすべてこれらの要素を使って書くことになります。 したがって,どうしても記述が複雑で込み入ったものになりがちです。 表(テーブル)部分の記述では,インデント(字下げ)や改行を効果的に用いたソースの記述をして判読性をよくすることを心がけてください。

table要素内で使用される表(テーブル)を構成する要素をまとめると以下のようになります。

表(テーブル)を構成する要素
要素名用 途
caption要素 表題を記入します。 既定では,表の上に表示されます。
tr要素 行になる要素です。
th要素 見出し項目となるセルを記述する要素です。 tr要素の子要素になります。
td要素 各セルを記述する要素です。 tr要素の子要素になります。
colgroup要素 カラム(列)のグループを指定して種々の指定の対象範囲を定めます。
thead要素 ヘッダ(見出し)部分の行のグループを指定します。
tfoot要素 フッタ(まとめ)部分の行のグループを指定します。
tbody要素 本体部分の行のグループを指定します。

HTML4.01 までは,tfoot要素tbody要素よりも前に記述する必要がありました。 しかし,HTML5 では,tbody要素の後に記述することも認められています。

なお,HTML5 では,要素の配置やレイアウトの目的のために表(テーブル)を使用することはできません。 レイアウトには,CSS を使いましょう。

■ 属性

種  類名  称
【固有属性】 border
【グローバル属性】 accesskeyclasscontenteditable * dir
hidden *idlangspellcheck *style
tabindextitletranslate *
【ARIA role属性】
指定可能な値 (役割)
任意の値 (役割)
【ARIA aria-* 属性】
指定可能なもの
ARIA グローバル状態とプロパティ
指定可能な役割の任意の状態とプロパティ   

HTML5 では,summaryalignbgcolorcellpaddingcellspacingframeruleswidth など多くの属性が廃止になりましたので注意が必要です。

ただし,CSS では,text-alignプロパティbackground-colorプロパティpaddingプロパティmarginプロパティborderプロパティwidthプロパティ などを用いることによって,これらの廃止された属性のほとんどのものよりさらに高機能な指定が可能です。

■ CSSプロパティ

種  類名  称
【よく使うもの】

■ 使用例1 (基本的かつ比較的単純な構造の場合)

HTMLソース
CSS
<head> ~ </head>
<style type="text/css">
<!--
   table, th, td { border: solid 1px #080808; }
-->
</style>
HTML
<body> ~ </body>
<table>
 <caption>【テーブルの例1】</caption>
 <tr>
  <th><br></th><th>列-A</th><th>列-B</th><th>列-C</th>
 </tr>
 <tr>
  <td>行-1</td><td>A1</td><td>B1</td><td rowspan="2">C1-C2</td>
 </tr>
 <tr>
  <td>行-2</td><td>A2</td><td>B2</td>
 </tr>
 <tr>
  <td>行-3</td><td>A3</td><td colspan="2">B3-C3</td>
 </tr>
</table>

ブラウザー 表示例
【テーブルの例1】

列-A列-B列-C
行-1A1B1C1-C2
行-2A2B2
行-3A3B3-C3

■ 使用例2 (ヘッダ-本体-フッタの3段構造の場合)

HTMLソース
CSS
<head> ~ </head>
<style type="text/css">
<!--
   table, th, td { border: solid 1px #080808; }
-->
</style>
HTML
<body> ~ </body>
<table>
  <caption>【テーブルの例2】</caption>
  <colgroup span="1" style="width:100px; text-align: center;
                          background-color: #CCCCCC;">
  <colgroup span="3" style="width:60px; text-align: right;">
  <thead style="background-color: #CCCCCC;">
    <tr>
      <th rowspan="2">品名</th><th colspan="3">見積金額</th>
    </tr>
    <tr>
      <th>単価</th><th>数量</th><th>価格</th>
    </tr>
  </thead>
  <tfoot>
    <tr>
      <th>小計</th><td><br></td><td><br></td><td>5,600</td>
    </tr>
    <tr>
      <th>総計</th><td><br></td><td><br></td><td>5,600</td>
    </tr>
  </tfoot>
  <tbody>
    <tr>
      <td>ぬいぐるみ</td><td>3,200</td><td>1</td><td>3,200</td>
    </tr>
    <tr>
      <td>チョコレート</td><td>800</td><td>3</td><td>2,400</td>
    </tr>
  </tbody>
</table>

ブラウザー 表示例
【テーブルの例2】
品名見積金額
単価数量価格
小計

5,600
総計

5,600
ぬいぐるみ3,20013,200
チョコレート80032,400

■ 備考