セルの結合(colspan・rowspan)
複数のセルを結合することで、より実用的で分かりやすい表を作ることができます。HTMLでは列の結合(colspan)と行の結合(rowspan)の2つの方法があります。
列を結合する(colspan)
複数の列にまたがる見出しを作りたい場合は、colspan
属性を使います。
列の結合:colspan属性の構造
<thead>
<tr>
<th>国名</th>
<th colspan="3">公用語</th> ← 3列結合
</tr>
</thead>
colspan="3"
3列分の幅を占める
セルの省略
結合した分だけ
他のセルを省略
他のセルを省略
実用場面
グループ見出しや
カテゴリー分け
カテゴリー分け
colspan の仕組み
- 結合する列数を指定
colspan
属性に結合したい列の数を書く。例えばcolspan="3"
と書くと、3列分のセルが1つになる - セルの省略 セルを結合する時は、その行から結合した分のセル(
<td>
や<th>
)を取り除く。例えば、4列の表で1つのセルをcolspan="3"
にしたら、その行のセルは合計2つになる - 見出しのグループ化
colspan
は複数の列に共通する見出しを作る時にとても便利。情報がすっきり整理されて、表がぐっと見やすくなる - レイアウトの調整 表全体のレイアウトを整えて、情報を分かりやすく見せることができる
実際にcolspanを試してみよう
HTMLコード:
プレビュー:
行を結合する(rowspan)
複数の行にまたがるセルを作りたい場合は、rowspan
属性を使います。
行の結合:rowspan属性の構造
<tbody>
<tr>
<th scope="row">1限</th>
<td rowspan="2">数学</td> ← 2行結合
<td>英語</td>
</tr>
<tr>
<th scope="row">2限</th>
<!-- 上の行で rowspan="2" を指定しているので、<td>数学</td> は省略 -->
<td>理科</td>
</tr>
</tbody>
rowspan="2"
2行分の高さを占める
セルの省略
結合した行数分
セルを省略
セルを省略
実用場面
グループ分けや
縦方向の関連付け
縦方向の関連付け
rowspan の仕組み
- 結合する行数を指定
rowspan="2"
と書くと、そのセルは2行分の高さになる - 次の行ではセルを省略 結合されたセルがある列では、次の行でそのセルを書かない。例えば
rowspan="2"
の場合、次の行では該当する列のセルを1つ省略する - データの継続性 同じデータが複数の行にまたがって続く時に便利
- 視覚的な関連付け 縦に並んだデータが同じグループに属していることを分かりやすく見せる
実際にrowspanを試してみよう
HTMLコード:
プレビュー:
複雑な結合の例
実際のWebサイトでよく見る、複雑な表を作ってみましょう。
HTMLコード:
プレビュー:
表のフッター(tfoot)
表の合計や総計を表示するために、<tfoot>
要素を使います。これにより、データ部分と合計部分を意味的に分離できます。
表のフッター:tfoot要素の配置
<table>
<thead>
<tr><th>商品</th><th>1月</th></tr>
</thead>
<tbody>
<tr><td>商品A</td><td>100万</td></tr>
<tr><td>商品B</td><td>80万</td></tr>
</tbody>
<tfoot> ← 表のフッター
<tr><th>合計</th><td>180万</td></tr>
</tfoot>
</table>
<tfoot> タグ
表のフッター
(合計・総計)
(合計・総計)
意味的分離
ヘッダー・データ・
フッターを区別
フッターを区別
CSSスタイリング
合計行だけに
特別なスタイル
特別なスタイル
tfoot の特徴
- 意味の分離 ヘッダー、データ、フッターをはっきりと分けて、表の作りを分かりやすくする
- スタイルの自由度 CSSで合計行だけに特別な見た目を付けられる。背景色を変えたり文字を太くしたりして、合計を目立たせることができる
- 自動で下に配置 HTMLでは
<tbody>
の後に書くが、実際には自動で表の一番下に表示される - 読み上げソフトに優しい 目の不自由な人が使う読み上げソフトが、表の構造をきちんと理解して説明してくれる
- 印刷で便利 長い表が何ページにもわたる時、各ページの下に合計を表示してくれるブラウザもある
実際にtfootを試してみよう
HTMLコード:
プレビュー:
インラインスタイルについて
上の例では <tfoot style="...">
のようにHTMLタグに直接スタイルを書いています。これをインラインスタイルと呼びます。
- 書き方 HTMLタグの
style
属性に直接CSSを記述 - メリット その要素だけにスタイルを適用できる
- デメリット 同じスタイルを何度も書く必要がある
- 使い分け 簡単なスタイルや一時的なテスト用に便利
実際のWebサイトでは、CSSファイルを分けて管理することが多いですが、ここでは<tfoot>
の効果を分かりやすく見せるためにインラインスタイルを使っています。
理解度チェッククイズ
表の応用テクニック理解度チェック
3列にまたがる見出しを作るときに使用する属性は何ですか?
colspan と rowspan を組み合わせて使用する場合の注意点として正しいものはどれですか?
次のHTMLコードで、正しく2行結合されているセルはどれですか?
<table>
<tbody>
<tr>
<th scope="row">月曜</th>
<td rowspan="2">数学</td>
<td>英語</td>
</tr>
<tr>
<th scope="row">火曜</th>
<td>理科</td>
</tr>
</tbody>
</table>
tfoot要素の役割として正しくないものはどれですか?
次のコードにtfoot要素を追加するとしたら、どの位置が正しいですか?
<table>
<thead>
<tr><th>商品</th><th>売上</th></tr>
</thead>
<tbody>
<tr><td>商品A</td><td>100万</td></tr>
<tr><td>商品B</td><td>80万</td></tr>
</tbody>
<!-- A: ここ -->
</table>
<!-- B: ここ -->
次のコードで、セルの数が間違っているのはどの行ですか?
<table>
<thead>
<tr>
<th>時限</th>
<th colspan="2">科目</th>
<th>教室</th>
</tr>
</thead>
<tbody>
<tr>
<td>1限</td>
<td>数学</td>
<td>英語</td>
<td>理科</td>
<td>A教室</td>
</tr>
</tbody>
</table>
まとめ
表の応用テクニック活用のポイント
- セルの結合
colspan
で列結合、rowspan
で行結合を効果的に使用 - 表のフッター
<tfoot>
で合計や集計データを意味的に分離 - 複雑な表の作成 colspanとrowspanを組み合わせて実用的な表を構築
- 意味的な構造 thead、tbody、tfootで表の役割を明確に分離
- アクセシビリティ配慮 scope属性で見出しとデータの関係を明確化
- 実用性重視 ユーザーの理解を助ける構造を心がける
次回は「第3章のクイズと実践」で、リストと表の理解を深めるためのクイズに挑戦し、実用的なスキルを身につけましょう!