HTML <colgroup> 表の列グループ要素
Baseline
Widely available
*
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
* Some parts of this feature may have varying levels of support.
<colgroup> は HTML の要素で、表内の列グループを定義します。
試してみましょう
<table>
<caption>
Superheros and sidekicks
</caption>
<colgroup>
<col />
<col span="2" class="batman" />
<col span="2" class="flash" />
</colgroup>
<thead>
<tr>
<td></td>
<th scope="col">Batman</th>
<th scope="col">Robin</th>
<th scope="col">The Flash</th>
<th scope="col">Kid Flash</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Skill</th>
<td>Smarts, strong</td>
<td>Dex, acrobat</td>
<td>Super speed</td>
<td>Super speed</td>
</tr>
</tbody>
</table>
.batman {
background-color: #d7d9f2;
}
.flash {
background-color: #ffe8d4;
}
table {
border-collapse: collapse;
border: 2px solid rgb(140 140 140);
font-family: sans-serif;
font-size: 0.8rem;
letter-spacing: 1px;
}
caption {
caption-side: bottom;
padding: 10px;
}
th,
td {
border: 1px solid rgb(160 160 160);
padding: 8px 6px;
}
td {
text-align: center;
}
属性
この要素にはグローバル属性があります。
非推奨の属性
以下の属性は非推奨であり、使用すべきではありません。これらの属性は、既存のコードを更新する際の参考として、また歴史的な興味だけのために、以下に文書化されています。
align-
列グループ内の各セルの水平方向の配置を指定します。指定可能な値は、
left、center、right、justify、charです。対応している場合、char値を指定すると、テキストコンテンツはchar属性で定義された文字と、charoff属性で定義されたオフセットに基づいて配置されます。なお、子孫の<col>要素は、自分自身でalign属性を使用して、この値を上書きすることがあります。この属性は非推奨となっているため、代わりに CSS のtext-alignプロパティを<td>および<th>要素に対して使用してください。メモ:
text-alignを<colgroup>要素に設定しても効果はありません。<td>および<th>要素は<colgroup>要素の子孫ではないため、プロパティを継承しないからです。表で
colspan属性を使用していない場合は、列ごとに 1 つずつ CSS のtd:nth-of-type(an+b)セレクターを使用してください。aは表内の列数、bは表内の列の位置を示す序数です。例えばtd:nth-of-type(7n+2) { text-align: right; }は 2 番目の列のセルを右揃えにします。表で
colspan属性を使用している場合は[colspan=n]のような、十分な CSS 属性セレクターの組み合わせで実現できますが、容易ではありません。 bgcolor-
列グループ内の各セルの背景色を定義します。この値は HTML 色であり、6 桁の 16 進数の RGB コードの前に '
#' が付いた形、または色キーワードのどちらかです。それ以外の CSS の<color>値には対応していません。この属性は非推奨ですので、代わりに CSS のbackground-colorプロパティを使用してください。 char-
何の効果もありません。この属性はもともと、列グループ内の各セルのコンテンツをある文字へ整列することを指定するためのものでした。よく使用する値としては、数値や金額を揃えるときのピリオド (
.) があります。alignがcharに設定されていない場合、この属性は無視されますが、この列グループのメンバーである<col>のalignのデフォルト値として使用されます。 charoff-
何の効果もありません。もともとは、列グループ内のセルのコンテンツを、
char属性で指定された配置文字からオフセットする文字数を指定するためのものでした。 valign-
列グループ内の各セルの垂直方向の配置を指定します。指定可能な列挙値は、
baseline、bottom、middle、topです。なお、子孫の<col>要素は、自分自身でvalign属性を使用して、この値を上書きする場合があります。この属性は非推奨となっているため、代わりに CSS のvertical-alignプロパティに<td>および<th>要素に対して使用してください。メモ:
vertical-alignプロパティを、<colgroup>要素を指定したセレクターに設定しようとしないでください。<td>要素は<colgroup>要素の子孫ではないため、プロパティを継承しません。表で
colspan属性を使用していない場合は、列ごとに CSStd:nth-of-type()セレクターを使用してください。例えば、td:nth-of-type(2) { vertical-align: middle; }と記述すると、2 つ目の列のセルを縦方向に中央揃えにできます。表で
colspan属性を使用している場合は[colspan=n]のような、十分な CSS 属性セレクターの組み合わせで実現できますが、容易ではありません。 width-
現在の列グループ内の各列のデフォルトの幅を指定します。この属性に指定できる値には、標準的なピクセル値やパーセント値に加え、
0*という特別な形式があります。これは、各列の幅を、その列のコンテンツを収めるのに必要な最小幅にするということです。5*のような相対幅も使用できます。子孫の<col>要素が、独自のwidth属性を使用してこの値を上書きする可能性があることに注意してください。この属性は非推奨となっているため、代わりに CSS のwidthプロパティを使用してください。
使い方のメモ
<colgroup>は、<table>内に現れ、<caption>要素(使用されている場合)の後、かつ<thead>、<tbody>、<tfoot>、<tr>要素の前に配置する必要があります。- 限られた数の CSS プロパティのみが、
<colgroup>に影響します。background: さまざまなbackgroundプロパティが、列グループ内のセルの背景を設定します。列グループの背景色は、表全体の上に描画されますが、列 (<col>)、行グループ (<thead>、<tbody>、<tfoot>)、行 (<tr>)、個々のセル (<th>および<td>) の背景色よりも下層に描画されるため、表の列グループに適用された背景色は、その上に描画されるすべてのレイヤーの背景が透明である場合にのみ表示されます。border: 様々なborderプロパティが、<table>にborder-collapse: collapseが設定されている場合にのみ適用されます。visibility: 列グループに対してcollapseを指定すると、その列グループ内の各列にあるすべてのセルがレンダリングされなくなり、他の列にまたがるセルは切り取られます。列グループ内のこれらの列が占めていたはずの空間は除去されます。ただし、他の列のサイズは、列グループ内の折りたたまれた列のセルが存在するかのように計算されます。visibilityのその他の値は効果を持ちません。width:widthプロパティは、列グループ内の各列の最小幅を定義します。これは、min-widthが設定された場合と同様です。
例
一般的な標準や最善の手法を紹介する完全な表の例については、<table> をご覧ください。
この例では、7 列の表を、複数の列にまたがった 2 つの <colgroup> 要素に分割する様子を紹介しています。
HTML
2 つの <colgroup> 要素を使用して、列グループを作成し、基本的な表の構造を構成します。それぞれの列グループ内の列の数は、span 属性で指定します。
<table>
<caption>
週間個人予定表
</caption>
<colgroup span="5" class="weekdays"></colgroup>
<colgroup span="2" class="weekend"></colgroup>
<thead>
<tr>
<th>月</th>
<th>火</th>
<th>水</th>
<th>木</th>
<th>金</th>
<th>土</th>
<th>日</th>
</tr>
</thead>
<tbody>
<tr>
<td>部屋掃除</td>
<td>フットボールの練習</td>
<td>ダンスコース</td>
<td>歴史の授業</td>
<td>飲み物を買う</td>
<td>勉強時間</td>
<td>自由時間</td>
</tr>
<tr>
<td>ヨガ</td>
<td>チェスクラブ</td>
<td>友達と会う</td>
<td>ジム</td>
<td>誕生日パーティ</td>
<td>釣り旅行</td>
<td>自由時間</td>
</tr>
</tbody>
</table>
CSS
グループ化された列は、CSS を使用して構造を視覚的に強調するために使用できます。
table {
border-collapse: collapse;
border: 2px solid rgb(140 140 140);
}
caption {
caption-side: bottom;
padding: 10px;
}
th,
td {
border: 1px solid rgb(160 160 160);
padding: 8px 6px;
text-align: center;
}
.weekdays {
background-color: #d7d9f2;
}
.weekend {
background-color: #ffe8d4;
}
結果
技術的概要
| コンテンツカテゴリー | なし |
|---|---|
| 許可されている内容 |
span 属性が存在する場合:
なし。この属性がない場合: 0 個以上の <col> 要素。
|
| タグの省略 |
最初の子要素が <col> 要素であり、かつ終了タグを省略した <colgroup> 要素が前にない場合は、開始タグを省略できます。空白またはコメントが後にない場合は、終了タグを省略できます。 |
| 許可されている親要素 |
<table> 要素。<colgroup> は省略可能な <caption> 要素より後、かつ <thead>, <th>, <tbody>, <tfoot>, <tr> の各要素より前に置かなければなりません。
|
| 暗黙の ARIA ロール | 対応するロールなし |
| 許可されている ARIA ロール | 許可されている role なし |
| DOM インターフェイス | HTMLTableColElement |
仕様書
| Specification |
|---|
| HTML> # the-colgroup-element> |
ブラウザーの互換性
関連情報
- 学習: HTML 表の基本
<caption>,<col>,<table>,<tbody>,<td>,<tfoot>,<th>,<thead>,<tr>: その他の表関係の要素background-color: 列グループ内の各セルの背景色を設定する CSS プロパティborder: 列グループのセルの境界を制御する CSS プロパティtext-align: 列グループ内の各セルの水平方向の配置を設定する CSS プロパティvertical-align: 列グループ内の各セルの垂直方向の配置を設定する CSS プロパティvisibility: 列グループ内のセルの非表示(または表示)する CSS プロパティwidth: 列グループ内の各列のデフォルトの幅を制御する CSS プロパティ:nth-of-type,:first-of-type,:last-of-type: 目的の列のセルを選択するための CSS 擬似クラス