since 21st/Jan./2000 and last modified 23rd/Jan./2000
TABLE要素
TABLE
要素、TR
要素、TH
要素、TD
要素
TH
要素、TD
要素
THEAD
要素、TFOOT
要素、TBODY
要素
COLGROUP
要素、COL
要素
TABLE
要素は、表を表わしたい時に使う要素で、開始タグと終了タグの直前、直後で自動的に改行されるブロックレベル要素です。P
要素の中には書けません。
CAPTION
要素、TR
要素、TH
要素、TD
要素
TR
要素で行を区切り、TH
要素で行・列のタイトル、TD
要素が普通の項目です。
<table summary="3行3列の小さい表の例"> <caption>小さい表の例</caption> <tr> <th>一行目</th> <th>その一</th> <th>その二</th> </tr> <tr> <th>二行目</th> <td>内容1,1</td> <td>内容1,2</td> </tr> <tr> <th>三行目</th> <td>内容2,1</td> <td>内容2,2</td> </tr> </table>
【表示例】
一行目 | その一 | その二 |
---|---|---|
二行目 | 内容1,1 | 内容1,2 |
三行目 | 内容2,1 | 内容2,2 |
これが表の基本的な構造です。
TH
要素、TD
要素の終了タグは省略可能です。しかし、 Netscape Communicator 4.x に同梱されているブラウザは、終了タグを省略すると暴走します。また、 XHTML 1.0 では、終了タグの省略は認められていません。必ず書くようにした方が安全でしょう。
TABLE
要素の開始タグの直後に、 CAPTION
要素を入れて下さい。この要素は表のタイトルとして使われます。また、 summary
属性は、表の内容の要約です。
表の行を表すTR
要素はその内部に TH
要素か、 TD
要素の何れかしか入れません。
表の一マス毎の内容を表す TH
要素(table header cell)と TD
要素(table data cell)はその内部に何を入れても構いません。
TABLE そのものの文書に対する配置を指定します。
align 属性を他の要素に用いる場合は、当該要素内の文字列を右寄せ、左寄せ、中央揃いなどに指定しますが、 TABLE 要素に用いる場合は、表自身の配置が指定されます。
align = left|center|right
align 属性は、下位互換のために過渡的定義されていますが、廃止予定の非推奨の属性です。 Transitional DTD には含まれますが、 Strict DTD には含まれません。
<p> align="right" を与えたTABLEの表示例です。 </p> <table summary="3行3列の小さい表の例" align="right"> <caption>小さい表の例</caption> <tr> <th>一行目</th> <th>その一</th> <th>その二</th> </tr> <tr> <th>二行目</th> <td>内容</td> <td>内容</td> </tr> <tr> <th>三行目</th> <td>内容</td> <td>内容</td> </tr> </table>
ここで云う align="right"
のようなもののことを属性と呼びます。要素に対して属性を与える時には、当該の要素の開始タグの中に属性を記述します。
align="right" を与えたTABLEの表示例です。
一行目 | その一 | その二 |
---|---|---|
二行目 | 内容 | 内容 |
三行目 | 内容 | 内容 |
TABLE そのものの配置を右寄せにします。浮動化(フロート)し、後続の要素が脇に流れ込みます。
従って、必要が有れば clear 属性を用いて流れ込みを禁止しなければなりません。
フロートと流れ込みの禁止に関しては、画像要素を参照してください。
表全体の幅を指定できます。非推奨属性では有りませんが、CSSを利用したほうが望ましいでしょう。
<table summary="width属性の例" width="200">
この例では、幅 200pixel が指定されています。 width 属性値はピクセルかパーセントです。
<table summary="width属性の例" width="50%">
パーセント値では、その時点で表が利用できる横幅に対する比率が指定されます。上の例では、描画領域の横幅の半分が指定されています。
描画領域は CSS などで削減指定されている可能性がありますので、必ずしもウィンドウの横幅では有りません。
ブラウザの既定値では、表に枠線は引かれない事になっています。そこで、TABLE
要素に属性を指定して、枠線・罫線を引かせましょう。
<table summary="枠線を引いた表の例" frame="hsides"> <caption>枠線を引いた表の例</caption> <tr> <td>frame属性<td>表の外枠線 <tr> <td>rules属性<td>セルの間の区切り線(罫線) <tr> <td>border属性<td>枠線と罫線の太さ </table>
開始タグ<TABLE>
の中に記述してあるframe="hsides"
とあるのが属性です。この例では、表の上端と下端に枠線が引かれるはずです。
【表示例】
frame属性 | 表の外枠線 |
rules属性 | セルの間の区切り線(罫線) |
border属性 | 枠線・罫線の太さ |
frame = void|above|below|hsides|lhs|rhs|vsides|box|border
void
: 外枠線なし。既定値です。
above
: 上端のみ。
below
: 下端のみ。
hsides
: 上端と下端のみ。
vsides
: 左端と右端のみ。
lhs
: 左端のみ。
rhs
: 右端のみ。
box
: 周囲全て。
border
: 周囲全て。
rules = none|groups|rows|cols|all
border = pixels
次の二行は同じ事を指しています。
<table border="2"> <table frame="border" rules="all" border="2">
また、border
属性に値が入っていない場合は既定値で表示されます。次の二行は同じ事を指しています。
<table border> <table frame="border" rules="all">
TH
要素、TD
要素
セルの一つ一つの内容は、TH
要素かTD
要素の中に記述されます。ここではセルの表示を調整するために属性を使います。
<tr> <td align="center">中央寄せ指定あり</td> <td>指定無し。標準</td> </tr>
上の例では、開始タグの中にalign="center"
と記述されたTD
要素の文字列は、ブラウザでは「セルの中央寄せ」に表示されます。
rowspan
属性、colspan
属性連続して同じ物が入っているような表のマスを結合出来ます。
rowspan
属性は縦方向の複数個のセルを結合し、colspan
属性では横方向の複数個のセルを結合出来ます。
<table summary="これは中学三年生・二学期の時間割です(今適当に作りました)" border="1"> <caption>時間割</caption> <tr> <td> </td><th>1</th><th>2</th><th>3</th> </tr><tr> <th>木</th><td colspan="2">理科</td><td>数学</td> </tr><tr> <th>金</th><td colspan="2">技術・家庭</td><td>社会</td> </tr><tr> <th>土</th><td>英語</td><td>数学</td><td>国語</td> </tr> </table>
この例では、木曜日の1,2時間目と金曜日の1,2時間目のセルがそれぞれ結合されています。
属性値が符号無しの単なる数字の場合、引用符は省略可能です。しかし、XHTMLでは、引用符の省略は認められず、必ず「属性名="属性値"」でなければなりません。
1 | 2 | 3 | |
---|---|---|---|
木 | 理科 | 数学 | |
金 | 技術・家庭 | 社会 | |
土 | 英語 | 数学 | 国語 |
TH
要素かTD
要素の開始タグの中にrowspan
属性やcolspan
属性を埋め込むことで、表のセル(表のマスメ)を結合出来ます。
rowspan="n" (n=0,1,2,3...)
rowspan=2
とあれば、そのセルは表の縦方向2つ分のセルが結合したものになる。
colspan="n" (n=0,1,2,3...)
colspan=2
とあれば、そのセルは表の横方向2つ分のセルが結合したものになる。
colspan
属性やrowspan
属性の値が"0"
である場合は、そのセルの位置から表の最後のセルまで一気に結合される。
align
属性とvalign
属性セルの中の文字をセルの中でどの辺りに表示させるか調整できます。
align = left|center|right|justify|char
valign = top|middle|bottom|baseline
これらの属性は、 COLGROUP 要素、 COL 要素、 TBODY 要素、 THEAD 要素、 TFOOT 要素、 TR 要素、 TH 要素、 TD 要素などの開始タグ中に書けます。
<table summary="これは中学三年生・二学期の時間割です(今適当に作りました)" border="1"> <caption>時間割</caption> <tr> <td> </td><th>1</th><th>2</th><th>3</th> </tr><tr align="center"> <th>木</th><td colspan=2>理科</td><td>英語</td> </tr><tr align="center"> <th>金</th><td colspan=2>技・家</td><td>社会</td> </tr><tr> <th>土</th><td>英語</td><td>数学</td><td>国語</td> </tr></table>
この例では、木曜日と金曜日の行で文字列が各セルの中央寄せに指定されています。
【表示例】
1 | 2 | 3 | |
---|---|---|---|
木 | 理科 | 英語 | |
金 | 技・家 | 社会 | |
土 | 英語 | 数学 | 国語 |
<!-- align="char" の例--> <table summary="表の例" border="1"> <cougroup> <col span="1"> <col span="1" align="char" char="*"> </colgroup> <tr> <th>物理定数</th><th>値</th> </tr> <tr> <th>Planck 定数 h/2π</th> <td>1.054 * 10E-27 erg/sec</td> </tr> <tr> <th>光の速さ c</th> <td>2.9979 * 10E+8 m/sec</td> </tr> <tr> <th>Boltsmann 定数 k</th> <td>8.617 * 10E-5 eV/erg</td> </tr> </table>
この例では、第二列の文字列が * を軸に縦方向に揃う筈です。
物理定数 | 値 |
---|---|
Planck 定数 h/2π | 1.054 * 10E-27 erg/sec |
光の速さ c | 2.9979 * 10E+8 m/sec |
Boltsmann 定数 k | 8.617 * 10E-5 eV/erg |
以上で表は最低限書ける筈ですが、出来れば次に挙げる三つの要素を使って、もっと構造を明白にしましょう。