文書型 | 適用 | 子要素 | 開始タグ | 終了タグ | 分類 |
---|---|---|---|---|---|
Strict | ○ | col要素 | 必須 | 省略可 | table要素の子要素 |
Transitional | ○ | ||||
Frameset | ○ |
colgroup { width: 横幅; }
colgroup { text-align: left; }
colgroup { text-align: center; }
colgroup { text-align: right; }
colgroup { text-align: justify; }
colgroup { text-align: "."; }
colgroup { vertical-align: top; }
colgroup { vertical-align: middle; }
colgroup { vertical-align: bottom; }
colgroup { vertical-align: baseline; }
align="char"
を指定したときに、どの文字で位置を揃えるのかを指定します。デフォルトでは小数点を表す記号(日本語ならピリオド)です。align="char"
を指定したときに、セルの左端からそろえる文字までの距離をピクセル値かパーセント値で指定します。colgroup要素でたての列をグループに分けることができます。span属性で何列分をグループ化するかを指定します。colgroup要素はcaption要素の次に配置します。
colgroup要素やcol要素で列ごとにスタイルを設定することができます。
横の行をグループに分けるにはthead要素、tfoot要素、tbody要素を使います。
<table summary="2月?3月の光熱費。1列目が月、
2列目から4列目までがそれぞれ水道代、ガス代、電気代です。">
<caption>光熱費</caption>
<colgroup class="month"></colgroup><!-- 月の列 -->
<colgroup span="3" class="data"></colgroup><!-- 水道代・ガス代・電気代の列 -->
<thead>
<tr>
<th>月</th><th>水道代</th><th>ガス代</th><th>電気代</th>
</tr>
</thead>
<tfoot>
<tr>
<td>合計</td><td>10000円</td><td>7000円</td><td>8000円</td>
</tr>
</tfoot>
<tbody>
<tr>
<td>2月</td><td>4000円</td><td>3000円</td><td>5000円</td>
</tr>
<tr>
<td>3月</td><td>6000円</td><td>4000円</td><td>3000円</td>
</tr>
</tbody>
</table>
colgroup.month { background: #d1edff; }
colgroup.data { background: #d8ffd1; }
月 | 水道代 | ガス代 | 電気代 |
---|---|---|---|
合計 | 10000円 | 7000円 | 8000円 |
2月 | 4000円 | 3000円 | 5000円 |
3月 | 6000円 | 4000円 | 3000円 |
span属性でグループ化するたての列数を指定する代わりに、子要素に同じ数だけのcol要素を配置することもできます。上の例は次のように書いても同じ意味を表します。グループ化された列の属性を個別に指定したいときに有効です。
<table summary="2月?3月の光熱費。1列目が月、
2列目から4列目までがそれぞれ水道代、ガス代、電気代です。">
<caption>光熱費</caption>
<colgroup class="month"></colgroup><!-- 月の列 -->
<colgroup class="data"><!-- 水道代・ガス代・電気代の列 -->
<col class="water">
<col class="gas">
<col class="electricity">
</colgroup>
(略)
colgroup要素もcol要素も似たような要素に思えますが、両者の役割は全く異なっています。colgroup要素は複数の列をグループに分け、列の属性を指定できる働きがあります。一方col要素は列の属性を指定できるだけでグループ化の機能はありません。
colgroup要素もcol要素もspan属性を持ちますが、span="3"
と指定した場合、見た目に関する機能は同じでもその表す意味は異なってきます。まずはcol要素の場合です。
<table>
<col span="3" class="foo">
col要素のspan属性は、極端に言えばcol要素の繰り返し回数です。上の例ではspan="3"
なので、次のように同じcol要素を3個配置しても同じ意味を表します。
<table>
<col class="foo">
<col class="foo">
<col class="foo">
次はcolgroupの場合です。
<table>
<colgroup span="3" class="foo"></colgroup>
上の例のようにcolgroup要素にspan="3"
を指定した場合、その3列が同じグループに属していることを表します。ですから次のように同じcolgroupを3個配置すると、それぞれの列が別のグループに属していることを表します。
<table>
<colgroup class="foo"></colgroup>
<colgroup class="foo"></colgroup>
<colgroup class="foo"></colgroup>
<!ELEMENT COLGROUP - O (COL)* -- table column group -->
<!ATTLIST COLGROUP
%attrs; -- %coreattrs, %i18n, %events --
span NUMBER 1 -- default number of columns in group --
width %MultiLength; #IMPLIED -- default width for enclosed COLs --
%cellhalign; -- horizontal alignment in cells --
%cellvalign; -- vertical alignment in cells --
>