since: 31st/Aug./2001; last modified: 16th/Sep./2001
テーブルは一般に、複数の列からなります。一行ごとに tr
要素の内容として表現しますが、複数の列を一つのまとまりとして扱いたいことがあります。このようなとき、 col, colgroup
要素を用います。
これらの要素を用いるときは、 caption
要素の次、tr
要素や thead, tfoot, tbody
要素よりも前に記述しなければなりません。また、 col
要素か colgroup
要素の何れか一方しか許されず、何れの場合も任意の回数表れ得ます。
col
要素は複数の列に共通した属性を指定したい場合に用います。 colgroup
要素は複数の列の構造的なグループ分けに使います。 colgroup
要素を用いて意味的な構造化をする場合は、 col
要素はその内容にしか現れません。 tr
要素と thead, tfoot, tbody
要素との関係に似ています。
span
= Number1
colgroup
要素に於けるこの属性は、当該要素内に複数の col
要素が存在するときは、無視される。colgroup
要素の属性値としては、グループ化する列数col
要素の属性としては、属性を共有する列数width
= MultiLengthwidth="50"
)width="30%"
)width="4*"
)width="0*"
:当該列を表示可能な最低幅。
最後のセルまで読み込まないと、幅が決定できないため、
上の三つとは異なり、逐次レンダリング不能。他に、 colgroup, col
要素に定義されている属性は、共通属性集合の Common
の他、セル内容の配置指定である align, valign
属性です。
これらの属性を用いると、当該グループ内の全ての th, td
要素で当該属性を指定したのと等価です。この属性値は、個別の要素ごとの定義に上書きされます。
次の例では、列グループには 40 個の列が含まれ、全ての列幅は 20 ピクセルに指定されている。かつ、 40 列目は id
属性が与えられている。
<table> <caption>サンプル</caption> <colgroup width="20"> <col span="39"> <col id="format-me-specially"> </colgroup> <thead> <tr><td> … </table>
次の例は、六つの列を含むテーブルの例です:
<table> <colgroup> <col width="30"> </colgoup> <colgroup> <col width="30"> <col width="0*"> <col width="2*"> </colgoup> <colgroup align="center"> <col width="1*"> <col width="3*" align="char" char=":"> </colgoup> <thead> <tr><td> … …行… </table>
上の例では、第一列幅は 30 ピクセル、第二列幅は 30 ピクセル、第三列幅は最小幅。残りの列は相対指定で、順に残りの表示可能幅の、 1/3, 1/6, 1/2 が配分されます。
最後のグループに含まれる二つの列は、文字列配置が align="center"
に指定されています。当該グループに含まれる全てのセル内容は中央寄せに指定されたことになります。しかし、最後の六列目は、当該列内のセルデータを、 ":
" で揃えるように上書き指定されています。これらの指定は、セル要素での個別の属性指定によって上書きされます。