AI先生のロボットキャラクター
第3章 - セクション7

表の応用テクニック

セルの結合(colspan・rowspan)と表のフッター(tfoot)で実用的な表を作成

女子生徒のアイコン

前回学んだ表の構造化はとても勉強になりました!でも、実際のWebサイトで見る表って、もっと複雑なものもありますよね?

AI先生のアイコン

鋭い観察だね!そうなんだ。実際のWebサイトでは、見出しが複数列にまたがっていたり、合計欄があったりと、もっと複雑で実用的な表が使われることがあるんだ。今日はそんな応用テクニックを学んでいこう。

男子生徒のアイコン

セルの結合とかも、表計算ソフトでよくやりますけど、HTMLでもできるんですか?

AI先生のアイコン

もちろん!HTMLではcolspanrowspanという属性を使って、セルを結合できるんだよ。それに加えて、表のフッターや列のグループ化など、実用的なテクニックがたくさんあるんだ。

セルの結合(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>の効果を分かりやすく見せるためにインラインスタイルを使っています。

理解度チェッククイズ

AI先生のアイコン

それじゃあ、今日学んだ表の応用テクニックがちゃんと身についているか、クイズで確認してみましょう。

表の応用テクニック理解度チェック

3列にまたがる見出しを作るときに使用する属性は何ですか?
rowspan="3"
colspan="3"
span="3"
merge="3"
colspan と rowspan を組み合わせて使用する場合の注意点として正しいものはどれですか?
先にcolspanを書いてからrowspanを書く必要がある
結合したセルの分だけ、他のセルを省略する必要がある
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>
<th scope="row">月曜</th>
<td rowspan="2">数学</td>
<td>英語</td>
<td>理科</td>
tfoot要素の役割として正しくないものはどれですか?
表の合計や総計を表示する
表の構造を意味的に分離する
CSSで特別なスタイルを適用しやすくする
表のデータ行数を制限する
次のコードに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: ここ -->
A: </tbody>の後、</table>の前
B: </table>の後
<tbody>の中に追加
<thead>の前に追加
次のコードで、セルの数が間違っているのはどの行ですか?
<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>
theadの行(セル数が正しい)
tbodyの行(セル数が多すぎる)
どちらも正しい
theadの行(セル数が足りない)

まとめ

男子生徒のアイコン

セルの結合や表のフッターなど、実用的なテクニックがたくさんありますね!

女子生徒のアイコン

特にtfoot要素を使った表の構造化は、データを整理して見せるのにとても便利ですね。

AI先生のアイコン

その通り!表の応用テクニックを使えば、データをより分かりやすく、使いやすく表示できるんだ。ただし、複雑にすればいいというわけではなく、ユーザーの理解しやすさを第一に考えることが重要だよ。次は、第3章で学んだリストと表の知識を総まとめするクイズに挑戦してみよう。

表の応用テクニック活用のポイント
  • セルの結合 colspanで列結合、rowspanで行結合を効果的に使用
  • 表のフッター <tfoot>で合計や集計データを意味的に分離
  • 複雑な表の作成 colspanとrowspanを組み合わせて実用的な表を構築
  • 意味的な構造 thead、tbody、tfootで表の役割を明確に分離
  • アクセシビリティ配慮 scope属性で見出しとデータの関係を明確化
  • 実用性重視 ユーザーの理解を助ける構造を心がける

次回は「第3章のクイズと実践」で、リストと表の理解を深めるためのクイズに挑戦し、実用的なスキルを身につけましょう!

学習チェック

このレッスンを理解できたら「完了」をクリックしてください。
後で見直したい場合は「未完了に戻す」で進捗をリセットできます。

レッスン完了!🎉

お疲れさまでした!