

* [CODE(HTMLe)[colgroup]] 要素型 (HTML, XHTML 1)

[1] [ABBR[[[HTML]]] [Hypertext Markup Language]] の
[CODE(HTMLe)[[[colgroup]]]] 要素は、[[表]]の[[列群]]を明示します。 

[8]
仕様書: 
- [[HTML 4]]
-- <IW:HTML4:"struct/tables.html#edef-COLGROUP">

[2]
:[[開始タグ]]:必須
:[[終了タグ]]:省略可能 (HTML 4), 必須 (XHTML 1)
:[[内容模型]]:[CODE(SGML)[([CODE(HTMLe)[[[col]]]]*)]]
:出現できる文脈:[CODE(HTMLe)[[[table]]]] 直下
([CODE(SGML)[([CODE(HTMLe)[[[caption]]]]?, (''[CODE(HTMLe)[colgroup]]'' | [CODE(HTMLe)[col]])*, [CODE(HTMLe)[[[thead]]]]?, [CODE(HTMLe)[[[tfoot]]]]?, [CODE(HTMLe)[[[tbody]]]]+)]])
:[[属性]]:
,属性名	,属性値	,既定値	,説明	,出典
,[CODE(HTMLa)[[[align]]]]	,	,	,揃え	,[HTML4] [CODE(SGML)[%[[cellhalign]]]]
,[CODE(HTMLa)[[[bgcolor]]]]	,[CODE(SGML)[%[[Color]]]]	,	,背景色	,
,[CODE(HTMLa)[[[char]]]]	,	,	,揃える文字	,[HTML4] [CODE(SGML)[%cellhalign]]
,[CODE(HTMLa)[[[charoff]]]]	,	,	,揃える文字	,[HTML4] [CODE(SGML)[%cellhalign]]
,[CODE(HTMLa)[[[class]]]]	,	,	,[[級]]	,[HTML4] %[[coreattr]]
,[CODE(HTMLa)[[[dir]]]]	,	,	,[[書字方向]]	,[HTML4] %[[i18n]]
,[CODE(HTMLa)[[[id]]]]	,	,	,一意識別子	,[HTML4] %coreattr
,[CODE(HTMLa)[[[lang]]]]	,	,	,[[自然言語]]	,[HTML4] %i18n
,[CODE(HTMLa)[[[xml]]:lang]]	,	,	,自然言語	,[XHTML1]
,[CODE(HTMLa)[[[onclick]]]]	,	,	,	,[HTML4] %[[events]]
,[CODE(HTMLa)[[[ondblclick]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onkeydown]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onkeypress]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onkeyup]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmousedown]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmousemove]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmouseout]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmouseover]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[onmouseup]]]]	,	,	,	,[HTML4] %events
,[CODE(HTMLa)[[[span]]]]	,[CODE(SGML)[[[NUMBER]]]]	,[CODE(HTML)[1]]	,行数	,[HTML4]
,[CODE(HTMLa)[[[style]]]]	,	,	,スタイル情報	,[HTML4] %coreattr
,[CODE(HTMLa)[[[title]]]]	,	,	,注釈的題	,[HTML4] %coreattr
,[CODE(HTMLa)[[[valign]]]]	,	,	,垂直配置	,[HTML4] [CODE(SGML)[%[[cellvalign]]]]
,[CODE(HTMLa)[[[width]]]]	,[CODE(SGML)[%[[MultiLength]];]]	,	,行幅	,[HTML4]


[9]
HTML 4 DTD の[[注釈]] (参考) には
[Q[COLGROUP groups a set of COL elements. It allows you to group several semantically related columns together.]]
と説明があります。
([[名無しさん]] [sage])

[[#comment]]


** 列の数

[3] [CODE(HTMLe)[colgroup]] で表される列群に含まれる列の数は、

= 子供 [CODE(HTMLe)[col]] 要素があれば、その
[CODE(HTMLa)[span]] 属性 (既定値 [CODE(HTML)[1]])
の値の合計数
= なければ、 [CODE(HTMLa)[span]] 属性 (既定値 [CODE(HTML)[1]]) の値

で決まります。

[4] 40行含む列群の例:
[PRE(HTML)[
   <COLGROUP span="40" width="20">
   </COLGROUP>
]PRE]

(HTML 4 より)

[CODE(HTMLa)[span]] を使った指定は、特に列数が多い時には便利ですが、
列に例えば [CODE(HTMLa)[[[id]]]] を与えておきたい場合には
[CODE(HTMLe)[col]] を使った方法にしないといけません。

[PRE(HTML)[
   <COLGROUP width="20">
      <COL span="39">
      <COL id="format-me-specially">
   </COLGROUP>
]PRE]

(HTML 4 より)

この例では [CODE(HTMLa)[width]] 属性の値が子 [CODE(HTMLe)[col]]
要素に継承されます。

[6] 表全体の列の数は、次のように決められます。
(仕様書: HTML 4 <IW:HTML4:"struct/tables.html#column-calc">)

[CODE(HTMLe)[[[table]]]] が子供として
[CODE(HTMLe)[colgroup]] や [CODE(HTMLe)[col]] を持つ場合、
UA が採るべき (should) 計算法:
子 [CODE(HTMLe)[colgroup]] は >>3 の方法、
子 [CODE(HTMLe)[col]] は [CODE(HTMLa)[span]] 属性
(既定値 [CODE(HTML)[1]]) によって値を得、
すべて合計したものが表全体の列数。

[CODE(HTMLe)[colgroup]] や [CODE(HTMLe)[col]]
が無い場合に UA が採るべき (should) 計算法:
表の全[[行]]のうち、一番[[こま]]数 
([CODE(HTMLa)[[[colspan]]]] 属性を考慮に入れたもの。)
が多いもののこま数が表全体の列数。

[WEAK[(こま数が列数に足りない行には空こまが補充されるべき (should) です。 HTML 4 仕様書ではこの説明は後者の計算法の場合に書かれていますが、前者で計算した場合も適用されるはずです。)]] 

二つの計算法の値が一致しない時は[[誤り]]です。

[[#comment]]


** 例

[5]
[PRE(HTML)[
<TABLE>
<COLGROUP span="10" width="50">
<COLGROUP span="5" width="0*">
<THEAD>
<TR><TD> ...
</TABLE>
]PRE]

(HTML 4 仕様書より)

[[#comment]]


** メモ

[7]
[CODE(HTMLe)[colgroup]] や [CODE(HTMLe)[[[col]]]] の目的は表の構造を示すことのほかに、
表の列数や幅などの属性を事前に知らしめておくことによって徐々にレンダリングするなど処理を高速化することもあります。
(ただし、それは90年代後半の話であって、
現在の回線や計算機の処理速度ではほとんど意味を成さないでしょう。)

([[名無しさん]])

[10]
[CITE[Bug 915 - implement inheritance of alignment attributes from columns (align, valign, char, charoff, (lang, dir)?)]] <https://bugzilla.mozilla.org/show_bug.cgi?id=915>
([[名無しさん]])


[11]
[CITE@ja[colgroup / col 要素を活用してみる | WWW WATCH]] ([TIME[2007-05-27 12:03:38 +09:00]] 版) <http://hyper-text.org/archives/2007/05/colgroup_and_col_element.shtml>
([[名無しさん]] [WEAK[2007-05-27 03:10:56 +00:00]])


[[#comment]]


* メモ

[12] [CITE@en[Allow <script> inside <hgroup> by annevk · Pull Request #3383 · whatwg/html]]
([TIME[2018-05-01 13:35:22 +09:00]])
<https://github.com/whatwg/html/pull/3383>