Section 2 : 表組(2) ― 列グループ

 Section 1 で行をグループ化する方法を見たが,列もグループ化できる。これは,表が何列からなるかを明示することにもなる。

列のグループ化

 行のグループ化とは異なり,列のグループ化は一括して行う。<TABLE> 内で,<CAPTION> の直後,<THEAD> の直前にあたる位置に書く。

 列のグループ化には次の 2 つの要素を使う。

<COLGROUP>...</COLGROUP>
<COL>

 <COLGROUP> は“ここから〜ここまで”,<COL> は“ここに”の形で書かれることに注意したい。</COLGROUP> は省略可能である。

 これらはふつう,<COL><COLGROUP> に入った形で使われる。グループ化したい列の数の <COL> を中に書けばよい。

 たとえば,1 列を 2 つのグループに分け,1 つめのグループが 2 つ,2 つめのグループが 3 つのセルからなるものと定義するならば,

<COLGROUP><COL><COL></COLGROUP>
<COLGROUP><COL><COL><COL></COLGROUP>

となる。ところが,セルの数が多くなるとこれは煩雑になる。そこで,属性を使ってうまくまとめることができる。

<COL><COLGROUP> の属性
属性 解説
WIDTH 長さ セルの幅を指定する。ピクセル,パーセント,相対指定。
SPAN 数値 同じ指定のセルがいくつあるかを指定する。既定値は 1。

 まず WIDTH 属性について触れておこう。これはその列幅を指定するわけだが,このとき“0*”(ゼロ アスタリスク)という特別な値を与えることができる。比例配分の形をしているが,意味するところは“セルに必要な最低幅”である。

 SPAN 属性はどのように使うのか。連続した複数の列がまったく同じ設定であるときに,それらをまとめて記述することができる。たとえば連続した 5 つの列の幅を 10% ずつにしたいときは,

<COL WIDTH="10%"><COL WIDTH="10%"><COL WIDTH="10%"><COL WIDTH="10%"><COL WIDTH="10%">

と書くが,これを SPAN 属性を使ってまとめると,

<COL SPAN="5" WIDTH="10%">

でよい。最初にあげた例で,1 つめの列グループの幅を 2 つとも 10% とし,2 つめのグループは最初の 1 つを幅 20%,残りは既定値でよいとするならば,SPAN 属性を使って

<COLGROUP><COL SPAN="2" WIDTH="10%"></COLGROUP>
<COLGROUP><COL WIDTH="20%"><COL SPAN="2"></COLGROUP>

と書ける。

 <COLGROUP> にも WIDTH 属性を指定することができるが,この値は,その <COLGROUP>...</COLGROUP> 内の <COL> にとくに WIDTH 属性が指定されていないときに使われる。列グループそのものの幅を表すのではない。たとえば,

<COLGROUP WIDTH="20%"><COL SPAN="3"><COL WIDTH="40%"></COLGROUP>

という列グループでは,はじめの 3 列に対しては <COLGROUP> に指定された幅 20% が使われ,4 列めは <COL> に明示された幅 40% が使われる。

 また,1 つの列グループに含まれる列がすべて同じ設定の場合は,<COLGROUP> に対して SPAN 属性を指定することができる。このとき,<COLGROUP>...</COLGROUP> の間には何も書かない

<COLGROUP SPAN="2" WIDTH="10%"></COLGROUP>

これは 2 つの幅 10% からなる列を含む,1 つの列グループを指定する。このとき SPAN 属性はグループに含まれる列の数を表し,列グループの数を表しているのではない

 さらに,とくに 1 つのセルをそのまま列グループにする場合,SPAN 属性も省略して

<COLGROUP></COLGROUP>

となる。

 先ほど <COL><COLGROUP> の中で使うと説明したが,<COLGROUP> をひとつも使わないのであれば裸の状態で <COL> を書いてもかまわない。この場合列は明示的にグループ化されず,<COL> はただ列に対して属性を指定するだけになる。

 <COLGROUP> また <COL> は行あたりのセルの数を宣言する意味も持っているので,実際の表の列あたりのセルの数の最大値と,<COLGROUP><COL> で宣言される 1 行あたりのセルの数は一致しなければならない

 また,HTML 4.01 では,COLSPAN 属性を用いて複数のセルをつなげるとき,そのセルは列グループをまたいではならない。

 NN4  列のグループ化はサポートされない。