この記事はHTML 4/XHTML 1での<table>要素についての解説記事です。
HTML 5での<table>要素に関する解説記事は、HTML 5 リファレンス内のHTML 5での<table>要素をご覧ください。
表(テーブル)である<table>要素についての説明です。
<table>要素とは、表(テーブル)、すなわちデータを縦横二次元に並べたブロックを指します。
<table>要素は、以下の文書型で利用出来ます。
<table>要素については、以下の点にご留意下さい。
対応出来ない場合、表関連のタグを全て無視して前から順に出力する事になるでしょう。
<table>要素が含まれるXHTML モジュールは文書型により異なります。
XHTML 1.1では<table>要素はテーブル(表)モジュールに属します。
XHTML 1.0 ベーシック及びXHTML モバイル・プロファイルでは<table>要素はベーシックテーブル(基本表)モジュールに属します。
<table>要素はブロックレヴェル要素です。
<table>要素の内容は文書型に依って異なりますが、表を構成する部品となります。
から成ります。
から成ります。
HTML 4.01では最後には
と規定されておりますが、<tbody>要素の開始タグ・終了タグとも省略が可能であり、従って、実質的には上記の通り<tbody>要素または<tr>要素を一個以上となります。
から成ります。
から成ります。
<table>要素には、以下の属性が定められております。
表の構造に関する説明が入ります。
<table>要素で使える共通属性には
があります。
以下の属性はISO-HTMLでは利用出来ません。
表の枠線の太さをピクセル単位で指定します。
border="border"属性ではなくframe="border"属性となります。以下に挙げる<table>要素の属性はHTML 3.2及びISO-HTMLでは利用出来ません。
表の外枠の表示を指定します。
値は以下の通りです。
表内の罫線の表示を指定します。
値は以下の通りです
以下に挙げる<table>要素の属性はHTML 3.2, トランジッショナル文書型及びフレームセット文書型でのみ利用出来る属性で、いずれも排除勧告が出されております。
align属性は表の配置を指定します。
値には以下の五つがあります。
leftrightcenter尚、align="lift"属性及びalign="right"属性が与えられた<img>要素以降のテキストの廻り込みを解除するには<br>要素のclear属性を用います。
表の背景色を指定します。指定出来る値はHTMLでの色指定についてを参照して下さい。
以下は非公認属性です。利用した場合はどの文書型にも適合しなくなります。従ってなるべく使わないようにすべきものです。
表全体の背景画像のURIを指定します。
<table>要素に対応出来ないユーザエージェントでは、表の内容を書かれている順にそのまま出力するでしょう。
また、携帯電話向けのフルブラウザの中にも意味の無いテーブルを解除して表示するものがあります。
今やテーブルレイアウトは非常にリスクが高くなったと言えますので、なるべく使わないようにしましょう。
どうしてもテーブルをレイアウトで使いたい場合は、テーブル関連の要素タグを取り払っても内容が理解できるような文書構成にしましょう。
また、レイアウトとまで行かなくても、枠線を付けたり背景色などを一時的に変えるためだけにテーブルを使うのも好ましい事ではありません。
summary属性は表の構造に関する説明を書くものです。
また、音声出力など非視覚系の環境、或いは視覚系でも
と言う事は、例えば<table>要素の記述例に於いて、以下のようなsummary属性値では好ましくないと思われます。
<table summary="携帯電話各キャリアのサーヴィス名と世代を縦方向に、GIF画像, JPEG画像及びPNG画像の対応状況を横方向で示しております。"…>
なぜなら、縦とか横と言うのはグラフィカルな環境でない限り見えない、つまり、縦とか横とか言われても通じない恐れがあるからです。
ですから、summary属性値となる記述には出来るだけ表示に関する表現を使わないように心掛けるべきと思われます。
制作者は、以下のように書いてみました。
<table summary="携帯電話各キャリアのサーヴィス名と世代ごとにGIF画像, JPEG画像及びPNG画像がそれぞれ対応しているかどうかを示しております。"…>
<table summary="携帯電話各キャリアのサーヴィス名と世代ごとにGIF画像, JPEG画像及びPNG画像がそれぞれ対応しているかどうかを示しております。" border="1" cellspacing="0" cellpadding="8"><caption>各携帯電話キャリアで使える画像形式(平成18年 5月20日現在)。</caption><colgroup span="2" class="carrier" /><colgroup span="3"><col class="gif" /><col class="jpeg" /><col class="png" /></colgroup><thead><tr><th colspan="2"></th><th scope="col" abbr="GIF">GIF画像</th><th scope="col" abbr="JPEG">JPEG画像</th><th scope="col" abbr="PNG">PNG画像</th></tr></thead><tfoot><tr><th colspan="2"></th><th scope="col" abbr="GIF">GIF画像</th><th scope="col" abbr="JPEG">JPEG画像</th><th scope="col" abbr="PNG">PNG画像</th></tr></tfoot><tbody id="imode"><tr><th scope="rowgroup" colspan="2" abbr="iモード">iモード<br />(エヌ・ティ・ティ・ドコモ)</th><td>表示可</td><td>旧型機で不可</td><td>表示不可</td></tr></tbody><tbody id="EZWeb"><tr><th scope="rowgroup" rowspan="2" abbr="EZウェブ">EZウェブ<br />(KDDI)</th><th scope="row" abbr="WAP 1">WAP 1.0</th><td colspan="2">表示不可(但しサーヴァ変換で対応)</td><td>表示可</td></tr><tr><th scope="row" abbr="WAP 2">WAP 2.0</th><td colspan="3">表示可</td></tr></tbody><tbody id="SoftBank"><tr><th scope="rowgroup" rowspan="2" abbr="ソフトバンク">ソフトバンク</th><th scope="row" abbr="2G">第二世代</th><td>表示不可</td><td>初期機で不可</td><td>表示可</td></tr><tr><th scope="row" abbr="3G">第三世代</th><td colspan="3">表示可</td></tr></tbody></table>
これを現行のグラフィカルなユーザエージェントで表示させると以下のような表になるでしょう。
まず、冒頭に<caption>要素による各携帯電話キャリアで使える画像形式(平成18年 5月20日現在)。と言うキャプションが表示されます。
表本体は七行五列の表となり、その表示は一行目から順に以下のようになるでしょう。