HTML-CSS 入門講座

HTML-CSS 入門講座

こんにちは!
今日も頑張ろう

Lesson-8
テーブルを活用しましょう

目次

L8.1 はじめに

L8.1.1 概要

  • テーブル関連の要素(タグ)やプロパティを使用すると色々な形態のテーブル構造を作成することができます。本レッスンでは、テーブルの作成方法と合わせて実際のテーブル活用例を通してテーブルを使用法を学びます。
  • display プロパティを使用することでテーブル関連の要素(タグ)を使用しなくてもテーブル構造を作成することもできます。本方法を使用することで CSS で自由なレイアウト設定を行うことができますので合わせて理解しましょう。

L8.2 テーブルの構成

L8.2.1 テーブルの構成初心者向け

テーブルの構造とテーブル作成で使用するタグは、以下の通りです。

テーブルの構造

L8.3 テーブル関連要素

L8.3.1 table 要素(テーブル作成)初心者向け

<table> テーブルコンテンツ </table>

テーブルを定義します。テーブルとは、行と列の組み合わせで構成されたセルを用いて作成する表組です。表計算ソフトウェアなどをイメージして頂けると良いかと思います。

テーブルを作成するための先頭要素(親要素)は、table 要素になりますが、子要素として以下の各要素を組み合わせてテーブル構成を作成します。

caption
キャプション設定
tr
テーブル横一行設定
th
テーブル見出しセル設定
td
テーブルセル設定
colgroup
縦列グループ設定
col
テーブル縦列属性設定
thead
テーブルヘッダー設定
tbody
テーブル本体設定
tfoot
テーブルフッター設定

一般的にテーブルを作成するためは以下の手順になります。下記の手順に出現しない要素については必要に応じて使用してください。

  1. table 要素を使用してテーブル作成を開始します。
  2. tr 要素を使用して一行(横軸)の作成を開始します。
  3. 見出しが必要な場合は、一行に格納するセルの個数分の th 要素を使用して見出しを指定してください。
  4. 一行に格納するセルの個数分の td 要素を使用して個別データ(セルデータ)を指定してください。
  5. 行数分、tr 要素の定義から繰り返してください。

使用上の注意事項

  • レイアウトの初期値はブロックレベルです。文章の改行に影響を与えます。
  • display プロパティ値は、規定値で table になります。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • 要素の詳細情報は、mdn web docs サイトで確認してください。

使用例

HTML例


<table>
	<caption>商品在庫</caption>
	<tr><th>商品名</th><th>単価</th><th>個数</th></tr>
	<tr><td>りんご</td><td>80</td><td>10</td></tr>
	<tr><td>みかん</td><td>40</td><td>20</td></tr>
	<tr><td>いちご</td><td>50</td><td>80</td></tr>
</table>

表示例

商品在庫
商品名単価個数
りんご8010
みかん4020
いちご5080

L8.3.2 caption 要素(テーブルキャプション)初心者向け

<caption> テーブルキャプションコンテンツ </caption>

テーブルのタイトルを定義します。タイトルを指定する場合は、table 要素の直後に子要素として caption 要素を配置します。表の作成方法は、table 要素を参照してください。

使用上の注意事項

  • caption 要素は、table 要素の開始直後にだけ配置できます。
  • display プロパティ値は、規定値で table-caption になります。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • 要素の詳細情報は、mdn web docs サイトで確認してください。

L8.3.3 tr 要素(テーブル一行)初心者向け

<tr> テーブル一行コンテンツ </tr>

テーブルの一行を定義します。一般的には、tr 要素の子要素に複数の th 要素や td 要素を配置し一行のデータを作成します。表の作成方法は、table 要素を参照してください。

使用上の注意事項

  • レイアウトには影響を与えません。
  • tr は、table row の略称です。
  • display プロパティ値は、table-row になります。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • 要素の詳細情報は、mdn web docs サイトで確認してください。

L8.3.4 th 要素(テーブル見出しセル)初心者向け

<th colspan="列方向のセル結合数" 
	rowspan="行方向のセル結合数" 
	scope="見出しの対象セル" 
	headers="セルの対象ヘッダー" 
	abbr="セルの説明"> 
	テーブル見出しセルコンテンツ </th>

テーブルの見出しとなるヘッダーセルを定義します。tr 要素の子要素として配置します。見出しが行と列のどちらの方向を対象にしているかは、scope 属性で指定します。通常のセルを作成する場合は、td 要素を使用してください。表の作成方法は、table 要素を参照してください。

主な固有属性

colspan
列方向にセルを結合する数を指定します。初期値は 1 で、最大値は 1000 です。
rowspan
行方向にセルを結合する数を指定します。初期値は 1 で、最大値は 1000 です。
scope
見出しの対象となるセルを指定します。scope 属性が指定されていない場合は、自動的に見出しセルが適用されるセルの集合を選択します。
row
同じ行に属するセルが対象になります。
col
同じ列に属するセルが対象になります。
rowgroup
行のグループに属するセルが対象になります。
colgroup
列のグループに属するセルが対象になります。
headers
セルが対象にしているヘッダーを明示します。th 要素の id 属性が持つ値を空白区切りのリストで指定します。
abbr
セルの内容に関する簡単な説明を指定します。

使用上の注意事項

  • th は、table header の略称です。
  • display プロパティ値は、table-cell になります。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • 要素の詳細情報は、mdn web docs サイトで確認してください。

L8.3.5 td 要素(テーブルセル)初心者向け

<td colspan="列方向のセル結合数" 
	rowspan="行方向のセル結合数" 
	headers="セルの対象ヘッダー"> 
	テーブルセルコンテンツ </td>

テーブルのデータセルを定義します。tr 要素の子要素として配置します。見出しセルを作成する場合は、th 要素を使用してください。表の作成方法は、table 要素を参照してください。

主な固有属性

colspan
列方向にセルを結合する数を指定します。初期値は 1 で、最大値は 1000 です。
rowspan
行方向にセルを結合する数を指定します。初期値は 1 で、最大値は 1000 です。
headers
セルが対象にしているヘッダーを明示します。th 要素の id 属性が持つ値を空白区切りのリストで指定します。

使用上の注意事項

  • td は、table data の略称です。
  • display プロパティ値は、table-cell になります。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • 要素の詳細情報は、mdn web docs サイトで確認してください。

L8.3.6 colgroup 要素(テーブル縦列グループ)

<colgroup span="列数"> テーブル縦列グループコンテンツ </colgroup>

テーブルの縦列グループを定義します。複数の列を関連ある列としてグループ化する場合に使用します。表の作成方法は、table 要素を参照してください。

似たような機能に col 要素があります。列を構造的な意味でグループ化したい場合は、colgroup 要素を使用して、見栄えだけを調整したい場合は、col 要素を使用してください。併用も可能です。

主な固有属性

span
colgroup 要素が影響を及ぼす列の数を指定します。初期値は、1です。

使用上の注意事項

  • この要素は可視化されません。テーブルのセルに対して間接的に効果を提供します。
  • colgroup は、column group の略称です。
  • display プロパティ値は、規定値で table-column-group になります。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • 要素の詳細情報は、mdn web docs サイトで確認してください。

L8.3.7 col 要素(テーブル縦列属性)

<col span="列数">

テーブルの縦に対してスタイルや属性を定義します。col 要素は、colgroup 要素の子要素として配置します。表の作成方法は、table 要素を参照してください。

似たような機能に colgroup 要素があります。列を構造的な意味でグループ化したい場合は、colgroup 要素を使用して、見栄えだけを調整したい場合は、col 要素を使用してください。併用も可能です。

主な固有属性

span
col 要素が影響を及ぼす列の数を指定します。初期値は、1です。

使用上の注意事項

  • この要素は可視化されません。テーブルのセルに対して視覚的に効果を提供します。
  • この要素は空要素です。終了タグはありません。
  • colgroup 要素の子要素として配置しますが col 要素単体でも機能します。
  • display プロパティ値は、規定値で table-column になります。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • 要素の詳細情報は、mdn web docs サイトで確認してください。

L8.3.8 thead 要素(テーブルヘッダー)

<thead> テーブルヘッダーコンテンツ </thead>

テーブルのヘッダー部分を定義します。一般的には、th 要素を使用してヘッダーを定義しますが、それを thead 要素でグループ化します。表の作成方法は、table 要素を参照してください。

thead 要素(ヘッダー)、tbody 要素(テーブル本体)、tfoot 要素(フッター)はテーブル構造の明確化を必要としないテーブルでは省略されることが多い要素です。但し、各要素を使用してテーブルの構造を明確化しておくことで可視性の良いテーブルを作成することもできます。例えば、行数が多いテーブルの場合にヘッダーとフッターを固定化しておいてテーブル本体だけをスクロール表示できるようにすることで可視性を向上させることができます。

使用上の注意事項

  • レイアウトには影響を与えません。
  • thead は、table header の略称です。
  • display プロパティ値は、table-header-group になります。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • 要素の詳細情報は、mdn web docs サイトで確認してください。

L8.3.9 tbody 要素(テーブル本体)

<tbody> テーブル本体コンテンツ </tbody>

テーブルのデータ本体部分を定義します。ここでの本体は、ヘッダー行とフッター行を除いた部分を示します。表の作成方法は、table 要素を参照してください。

thead 要素(ヘッダー)、tbody 要素(テーブル本体)、tfoot 要素(フッター)はテーブル構造の明確化を必要としないテーブルでは省略されることが多い要素です。但し、各要素を使用してテーブルの構造を明確化しておくことで可視性の良いテーブルを作成することもできます。例えば、行数が多いテーブルの場合にヘッダーとフッターを固定化しておいてテーブル本体だけをスクロール表示できるようにすることで可視性を向上させることができます。

使用上の注意事項

  • レイアウトには影響を与えません。
  • tbody は、table body の略称です。
  • display プロパティ値は、規定値で table-row-group になります。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • 要素の詳細情報は、mdn web docs サイトで確認してください。

L8.3.10 tfoot 要素(テーブルフッター)

<tfoot> テーブルフッターコンテンツ </tfoot>

テーブルのフッター部分を定義します。一般的には、td 要素を使用してフッターを定義しますが、それを tfoot 要素でグループ化します。表の作成方法は、table 要素を参照してください。

thead 要素(ヘッダー)、tbody 要素(テーブル本体)、tfoot 要素(フッター)はテーブル構造の明確化を必要としないテーブルでは省略されることが多い要素です。但し、各要素を使用してテーブルの構造を明確化しておくことで可視性の良いテーブルを作成することもできます。例えば、行数が多いテーブルの場合にヘッダーとフッターを固定化しておいてテーブル本体だけをスクロール表示できるようにすることで可視性を向上させることができます。

使用上の注意事項

  • レイアウトには影響を与えません。
  • tfoot は、table footer の略称です。
  • display プロパティ値は、table-footer-group になります。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • 要素の詳細情報は、mdn web docs サイトで確認してください。

L8.3.11 注意事項

  • th タグは縦に並べても良く表の中に点在していても大丈夫です。
  • セル内の余白を設定する時は、th タグまたは、td タグのスタイルで padding プロパティを指定します。
  • セル内に画像を表示させる時は、th タグまたは、td タグ内に img タグを記述します。

L8.4 テーブル関連プロパティ

L8.4.1 border-collapse プロパティ(隣接セルの表示方法)初心者向け

border-collapse: 隣接セルの表示方法;

テーブルの隣接するセルの表示方法を指定します。

隣接セルの表示方法は、以下の値で指定します。

collapse
隣接するセルのボーダーを重ねて表示します。
separate
隣接するセルのボーダーを間隔をあけて表示します。

使用上の注意事項

  • 初期値は、normal です。
  • table および inline-table 要素に適用できます。
  • 継承します。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • プロパティの詳細情報は、mdn web docs サイトで確認してください。

L8.4.2 border-spacing プロパティ(隣接セルのボーダー間の間隔)初心者向け

border-spacing: 隣接セルのボーダー間の間隔;

テーブルの隣接するセルのボーダー間の間隔を指定します。本プロパティは、border-collapse プロパティに separate が指定されている時に有効になります。

隣接セルのボーダー間の間隔は、複数指定でき指定した個数により対象位置が異なります。

1 個の指定
「上下左右」のすべての指定になります。
2 個の指定
「左右」と「上下」の順で指定します。

使用上の注意事項

  • 初期値は、0 です。
  • table および inline-table 要素に適用できます。
  • 継承します。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • プロパティの詳細情報は、mdn web docs サイトで確認してください。

L8.4.3 caption-side プロパティ(テーブルキャプションの配置位置)

caption-side: テーブルキャプションの配置位置;

テーブルキャプションの配置位置を指定します。

テーブルキャプションの配置位置は、以下の値で指定します。

top
表の先頭に配置します。
bottom
表の末尾に配置します。

使用上の注意事項

  • 初期値は、top です。
  • 表のキャプション要素に適用できます。
  • 継承します。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • プロパティの詳細情報は、mdn web docs サイトで確認してください。

L8.4.4 empty-cells プロパティ(空白セルの表示形式)

empty-cells: 空白セルの表示形式;

空白セルの表示形式を指定します。

空白セルの表示形式は、以下の値で指定します。

show
通常のセルのように境界や背景を表示します。
hide
境界や背景を表示しません。

使用上の注意事項

  • 初期値は、show です。
  • 表のセル要素に適用できます。
  • 継承します。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • プロパティの詳細情報は、mdn web docs サイトで確認してください。

L8.4.5 table-layout プロパティ(セルのレイアウト形式設定)

table-layout: セルのレイアウト形式;

セルの行、列のレイアウト形式を設定します。

セルのレイアウト形式は、以下の値で指定します。

auto
セルの内容に合うようにブラウザが自動で表とセルの幅を調整します。auto を指定するとテーブル全体を読み込んでから各セルのコンテンツ幅を考慮して各セルの幅が決定されます。
fixed
表と列の幅は table 要素と col 要素の幅、または、最初の行のセルの幅によって決定します。この指定は、表の 1 行目が解析された時点で表全体の幅が決定されます。このため、後続するセルの内容によっては、幅が合わなくなる可能性があります。このような場合は、overflow プロパティや text-overflow プロパティなどを使用して長すぎるセル内容の処置を指定する必要があります。必要に応じてセルの幅を指定しますがセル幅が指定されていないセルは均等に割り当てられます。

使用上の注意事項

  • 初期値は、show です。
  • table および inline-table 要素できます。
  • 継承しません。
  • ブラウザの対応状況は、caniuse サイトで確認してください。
  • プロパティの詳細情報は、mdn web docs サイトで確認してください。

table-layout プロパティの使用例は、以下の通りです。

使用例(HTML)


<table class="l7-table-layout">
	<tr>
		<td>12345</td>
		<td>1234567890</td>
		<td>123456789012345</td>
		<td>12345678901234567890</td>
	</tr>
</table>

使用例(CSS)


table.l7-table-layout {
	width: 100%;
	border-collapse: collapse;
	table-layout: セル幅の決定方法;
}
table.l7-table-layout td {
	padding: 5px 0;
	text-align: center;
	border: 1px #ccc solid;
}
  1. table-layout: auto;
    12345 1234567890 123456789012345 12345678901234567890
  2. table-layout: fixed;
    12345 1234567890 123456789012345 12345678901234567890

L8.4.6 vertical-align プロパティ(垂直方向位置指定)初心者向け

vertical-align: 垂直方向位置;

インラインブロック、表セルボックスの垂直方向位置を指定します。

  • インライン要素、インラインブロック要素(img 要素など)の垂直配置位置を指定します。例えば、行内にテキストと画像を表示する場合に画像の垂直位置を指定します。
  • 表のセル内の垂直方向の配置位置を指定します。
  • 本プロパティは、ブロック要素には適用されませんので注意してください。

垂直方向位置は、以下の値で指定します。初期値は、baseline です。

baseline
要素の下端をフォントのベースラインに揃えます。
top
要素の上端を行の上端に揃えます。
middle
要素を行の中央に揃えます。
bottom
要素の下端を行の下端に揃えます。

vertical-align プロパティの使用例は、以下の通りです。

使用例(HTML)


<table class="l7-vertical-align">
	<tr>
		<td>12345<br>12345<br>12345</td>
		<td style="vertical-align: baseline;">baseline</td>
		<td style="vertical-align: top;">top</td>
		<td style="vertical-align: middle;">middle</td>
		<td style="vertical-align: bottom;">bottom</td>
	</tr>
</table>

使用例(CSS)


table.l7-vertical-align {
    border-collapse: collapse;
}
table.l7-vertical-align td {
    width: 150px;
    padding: 5px 0;
    text-align: center;
    border: 1px #ccc solid;
}
12345
12345
12345
baseline top middle bottom

L8.5 HTML/CSS 記述例

L8.5.1 HTML の記述

(1) ソースコード

HTML


<table>
	<caption>商品在庫</caption>
	<tr><th>商品名</th><th>単価</th><th>個数</th></tr>
	<tr><td>りんご</td><td>80</td><td>10</td></tr>
	<tr><td>みかん</td><td>40</td><td>20</td></tr>
	<tr><td>いちご</td><td>50</td><td>80</td></tr>
</table>

(2) 表示結果

商品在庫
商品名単価個数
りんご8010
みかん4020
いちご5080

L8.5.2 CSS の記述

(1) ソースコード

HTML


<table class="l7-sample-01">
	<caption>商品在庫</caption>
	<tr><th>商品名</th><th>単価</th><th>個数</th></tr>
	<tr><td>りんご</td><td>80</td><td>10</td></tr>
	<tr><td>みかん</td><td>40</td><td>20</td></tr>
	<tr><td>いちご</td><td>50</td><td>80</td></tr>
</table>

CSS


table.l7-sample-01 {
    border-collapse: collapse;
}
table.l7-sample-01 caption {
    padding: 5px 0;
}
table.l7-sample-01 th {
    width: 150px;
    padding: 5px 0;
    background-color: #eee;
    text-align: center;
    border: 1px #ccc solid;
}
table.l7-sample-01 td {
    width: 150px;
    padding: 5px 0;
    text-align: center;
    border: 1px #ccc solid;
}

(2) 表示結果

商品在庫
商品名単価個数
りんご8010
みかん4020
いちご5080

L8.5.3 テーブル構造の明確化

(1) ソースコード

HTML


<table class="l7-sample-02">
	<caption>商品在庫</caption>
	<colgroup>
		<col class="name">
		<col class="item" span="2">
		<col class="total">
	</colgroup>
	<thead>
		<tr><th>商品名</th><th>単価</th><th>個数</th><th>金額</th></tr>
	</thead>
	<tbody>
		<tr><td>りんご</td><td>80</td><td>10</td><td>800</td></tr>
		<tr><td>みかん</td><td>40</td><td>20</td><td>800</td></tr>
		<tr><td>いちご</td><td>50</td><td>80</td><td>4000</td></tr>
	</tbody>
	<tfoot>
		<tr><td colspan="3">合計</td><td>5600</td></tr>
	</tfoot>
</table>

CSS


table.l7-sample-02 {
    border-collapse: collapse;
}
table.l7-sample-02 caption {
    padding: 5px 0;
}
table.l7-sample-02 .name {
	background: palegoldenrod;
}
table.l7-sample-02 .item {
	background: pink;
}
table.l7-sample-02 .total {
	background: aquamarine;
}
table.l7-sample-02 thead th {
    width: 150px;
    padding: 5px 0;
    text-align: center;
    border: 1px #ccc solid;
    background-color: #eee;
}
table.l7-sample-02 tbody td {
    width: 150px;
    padding: 5px 0;
    text-align: center;
    border: 1px #ccc solid;
}
table.l7-sample-02 tfoot td {
    width: 150px;
    padding: 5px 0;
	font-weight: bold;
    text-align: center;
    border: 1px #ccc solid;
    background-color: #eee;
}

(2) 表示結果

商品在庫
商品名単価個数金額
りんご8010800
みかん4020800
いちご50804000
合計5600

L8.6 display を用いたテーブル構造

L8.6.1 概要

display プロパティを用いることで table 関連要素と同等の構造を定義することができます。本テーブル構造を使用することで下記のように柔軟な表示型式を指定することができます。

  • コンテンツの属性を明確にすることができます。
  • vertical-align プロパティを使用することで上下中央や下揃えが指定できます。
  • table-layout プロパティを使用することでセルを均等幅にすることができます。
  • 特定のセルだけに幅を指定することで固定幅と可変幅のセルを定義することができます。
  • セルの高さを揃えることができます。(揃えることしかできません)

L8.6.2 display プロパティ


display: table;						/* table */
display: table-caption;				/* caption */
display: table-row;					/* tr */
display: table-cell;				/* th, td */
display: table-header-group;		/* thead */
display: table-row-group;			/* tbody */
display: table-footer-group;		/* tfoot */
display: table-column-group;		/* colgroup */
display: table-column;				/* col */

包含関係になった要素に対して display プロパティを指定してテーブル構造を定義します。

display プロパティを使用して div/p/ul/ol/li などの要素を table 関連要素の属性に設定します。

table
table 要素の属性設定
table-caption
caption 要素の属性設定
table-row
tr 要素の属性設定
table-cell
th, td 要素の属性設定
table-header-group
thead 要素の属性設定
table-row-group
tbody 要素の属性設定
table-footrer-group
tfoot 要素の属性設定
table-column-group
colgroup 要素の属性設定
table-column
col 要素の属性設定

L8.6.3 記述例

(1) ソースコード

HTML


<div class="l7-sample-03">
	<p>商品在庫</p>
	<div class="header">
		<ul>
			<li>商品名</li>
			<li>単価</li>
			<li>個数</li>
		</ul>
	</div>
	<ul>
		<li>りんご</li>
		<li>80</li>
		<li>10</li>
	</ul>
	<ul>
		<li>みかん</li>
		<li>40</li>
		<li>20</li>
	</ul>
	<ul>
		<li>いちご</li>
		<li>50</li>
		<li>80</li>
	</ul>
</div>

CSS


div.l7-sample-03 {
	display: table;
    border-collapse: collapse;
}
div.l7-sample-03 p {
	display: table-caption;
    padding: 5px 0;
    text-align: center;
}
div.l7-sample-03 div.header ul {
	font-weight: bold;
    background-color: #eee;
}
div.l7-sample-03 ul {
	margin: 0;
}
div.l7-sample-03 ul li {
	display: table-cell;
    width: 150px;
    padding: 5px 0;
    text-align: center;
    border: 1px #ccc solid;
}

(2) 表示結果

商品在庫

  • 商品名
  • 単価
  • 個数
  • りんご
  • 80
  • 10
  • みかん
  • 40
  • 20
  • いちご
  • 50
  • 80

L7.7 テーブルサンプル

L8.7.1 テーブルサンプル(都道府県別集計)

集計表のサンプルです。行の区別がしやすいうように行単位で背景色の変更しています。

(1) ソースコード

ソースコード表示

HTML


<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>テーブルサンプル(都道府県別集計)</title>
<style>
body,div,h1,h2,h3,h4,h5,h6,pre,p,a,select,header,nav,main,section,footer {
	padding: 0;
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	word-wrap: break-word;
	box-sizing: border-box;
}
body {
	font-family: sans-serif;
}
.container {
	padding: 20px 0;
	width: 500px;
	margin: 0 auto;
	border: #fff 1px solid;
}
table {
	width: 100%;
	border-collapse: collapse;
}
table tr:nth-child(odd) {
	background-color: #eee;
}
table tr:nth-child(1) {
	background-color: #666;
	color: #fff;
}
table th {
	width: calc(100% / 5);
	padding: 5px 0px 5px 0px;
	text-align: center;
	border: 1px #ccc solid;
}
table td {
	padding: 5px 10px 5px 10px;
	text-align: right;
	border: 1px #ccc solid;
}
table tr td:nth-child(1) {
	text-align: center;
}
</style>
</head>
<body>
	<div class="container">
		<table>
			<caption>都道府県別統計</caption>
			<tr><th>都道府県</th><th>集計1</th><th>集計2</th><th>集計3</th><th>集計4</th></tr>
			<tr><td>青森県</td><td>1</td><td>2</td><td>3</td><td>4</td></tr>
			<tr><td>岩手県</td><td>11</td><td>22</td><td>33</td><td>44</td></tr>
			<tr><td>宮城県</td><td>111</td><td>222</td><td>333</td><td>444</td></tr>
			<tr><td>秋田県</td><td>1111</td><td>2222</td><td>3333</td><td>4444</td></tr>
			<tr><td>山形県</td><td>11111</td><td>22222</td><td>33333</td><td>44444</td></tr>
			<tr><td>福島県</td><td>111111</td><td>222222</td><td>333333</td><td>444444</td></tr>
		</table>
	</div>
</body>
</html>

(2) 表示形式

L8.7.2 テーブルサンプル(タイル風の表)

セルがタイル風になったサンプルです。セル間に隙間を作ってタイル風にしています。

(1) ソースコード

ソースコード表示

HTML


<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>テーブルサンプル(タイル風の表)</title>
<style>
body,div,h1,h2,h3,h4,h5,h6,pre,p,a,select,header,nav,main,section,footer {
	padding: 0;
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	word-wrap: break-word;
	box-sizing: border-box;
}
body {
	font-family: sans-serif;
}
.container {
	padding: 20px 0;
	width: 500px;
	margin: 0 auto;
	border: #fff 1px solid;
}
table {
	width: 100%;
	border-collapse: separate;
}
table th {
	width: calc(100% / 5);
	padding: 5px 0px 5px 0px;
	background-color: #984c2b;
	color: #fff;
	text-align: center;
	border-radius: 5px;
	border: 1px #ccc solid;
}
table td {
	padding: 5px 0px 5px 0px;
	background-color: #ffe282;
	text-align: center;
	border-radius: 5px;
	border: 1px #ccc solid;
}
</style>
</head>
<body>
	<div class="container">
		<table>
			<tr><th>見出し 1</th><td>データ 1-1</td><td>データ 1-2</td><td>データ 1-3</td><td>データ 1-4</td></tr>
			<tr><th>見出し 2</th><td>データ 2-1</td><td>データ 2-2</td><td>データ 2-3</td><td>データ 2-4</td></tr>
			<tr><th>見出し 3</th><td>データ 3-1</td><td>データ 3-2</td><td>データ 3-3</td><td>データ 3-4</td></tr>
			<tr><th>見出し 4</th><td>データ 4-1</td><td>データ 4-2</td><td>データ 4-3</td><td>データ 4-4</td></tr>
		</table>
	</div>
</body>
</html>

(2) 表示形式

L8.7.3 テーブルサンプル(料金表)

料金プランの比較表のサンプルです。料金が目立つようにすると同時に申し込みボタンが配置されています。

(1) ソースコード

ソースコード表示

HTML


<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>テーブルサンプル(料金表)</title>
<style>
body,div,h1,h2,h3,h4,h5,h6,pre,p,a,select,header,nav,main,section,footer {
	padding: 0;
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	word-wrap: break-word;
	box-sizing: border-box;
}
body {
	font-family: sans-serif;
}
.container {
	padding: 20px 0;
	width: 450px;
	margin: 0 auto;
	border: #fff 1px solid;
}
table {
	width: 100%;
	border-collapse: collapse;
}
table caption {
	font-size: 26px;
	font-weight: bold;
}
table tr:nth-child(2) {
	font-size: 30px;
	font-weight: bold;
}
table tr:nth-child(4) {
	border-bottom: 1px #ccc solid;
}
table th {
	width: calc(100% / 3);
	color: #fff;
	font-size: 22px;
	padding: 10px 0px 10px 0px;
	text-align: center;
	border: 1px #ccc solid;
}
table th:nth-child(1) {
	background-color: #868686;
}
table th:nth-child(2) {
	background-color: #d41818;
}
table th:nth-child(3) {
	background-color: #2a7196;
}
table td {
	padding: 10px 0px 10px 0px;
	text-align: center;
	border-left: 1px #ccc solid;
	border-right: 1px #ccc solid;
}
table td a {
	background-color: #25b327;
	text-decoration: none;
	color: white;
	padding:5px 20px;
	border-radius: 30px;
	font-weight: bold;
}
</style>
</head>
<body>
	<div class="container">
		<table>
			<caption>料金プラン</caption>
			<tr><th>無料プラン</th><th>初級プラン</th><th>上級プラン</th></tr>
			<tr><td>¥0</td><td>¥4,000</td><td>¥8,000</td></tr>
			<tr><td><a href="#">申し込み</a></td><td><a href="#">申し込み</a></td><td><a href="#">申し込み</a></td></tr>
			<tr><td>保障なし</td><td>保障1ヶ月</td><td>保障3ヶ月</td></tr>
		</table>
	</div>
</body>
</html>

(2) 表示形式

L8.7.4 テーブルサンプル(プロフィール)

プロフィール表のサンプルです。複数個所への表題の配置とセルの結合を行っています。

(1) ソースコード

ソースコード表示

HTML


<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>テーブルサンプル(プロフィール)</title>
<style>
body,div,h1,h2,h3,h4,h5,h6,pre,p,a,select,header,nav,main,section,footer {
	padding: 0;
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	word-wrap: break-word;
	box-sizing: border-box;
}
body {
	font-family: sans-serif;
}
.container {
	padding: 20px 0;
	width: 730px;
	margin: 0 auto;
	border: #fff 1px solid;
}
table {
	width: 100%;
	border-collapse: collapse;
	border: 2px #aaa solid;
}
table th {
	width: 80px;
	padding: 5px 0;
	background-color: #c8dfff;
	text-align: center;
	border: 1px #aaa solid;
}
table td {
	width: 100px;
	padding: 5px 0;
	text-align: center;
	border: 1px #aaa solid;
}
table .left {
	padding-left: 10px;
	text-align: left;
}
</style>
</head>
<body>
	<div class="container">
		<table>
			<tr><th>氏名</th><td>山田 太郎</td><th>年齢</th><td>25歳</td><th>出身地</th><td>沖縄県</td><th>血液型</th><td>A型</td></tr>
			<tr><th>住所</th><td>111-2222</td><td colspan="6" class="left">東京都千代田区1丁目1番地</td></tr>
			<tr><th>メール</th><td colspan="3" class="left">aaaaa@aaaa.com</td><th>URL</th><td colspan="3" class="left">https://www.aaaa.com</td></tr>
			<tr><th rowspan="4">スキル</th><td colspan="2">Photoshop</td><td>★★☆</td><td colspan="4" class="left">独自で作業を進められる</td></tr>
			<tr><td colspan="2">Illustrator</td><td>★★☆</td><td colspan="4" class="left">独自で作業を進められる</td></tr>
			<tr><td colspan="2">HTML/CSS</td><td>★☆☆</td><td colspan="4" class="left">確認しながら作業を進められる</td></tr>
			<tr><td colspan="2">WordPress</td><td>★★★</td><td colspan="4" class="left">指導できる</td></tr>
		</table>
	</div>
</body>
</html>

(2) 表示形式

L8.7.5 テーブルサンプル(オセロ盤)

オセロ盤のサンプルです。クラス名の付与を行うことでコマの配置が行えます。

(1) ソースコード

ソースコード表示

HTML


<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>テーブルサンプル(オセロ)</title>
<style>
body,div,h1,h2,h3,h4,h5,h6,pre,p,a,select,header,nav,main,section,footer {
	padding: 0;
	margin: 0;
	font-size: 16px;
	line-height: 1.6;
	word-wrap: break-word;
	box-sizing: border-box;
}
body {
	font-family: sans-serif;
}
.container {
	padding: 20px 0;
	width: 431px;
	margin: 0 auto;
	border: #fff 1px solid;
}
table {
	border-collapse: collapse;
	background-color: #26b569;
	border: 4px #000 solid;
}
table td {
	width: 50px;
	height: 50px;
	vertical-align: middle;
	border: 1px #000 solid;
}
table div.w {
	width: 44px;
	height: 44px;
	margin: 0 auto;
	border-radius: 50%;
	background-color: #fff;
}
table div.b {
	width: 44px;
	height: 44px;
	margin: 0 auto;
	border-radius: 50%;
	background-color: #000;
}
</style>
</head>
<body>
	<div class="container">
		<table>
			<tr><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td></tr>
			<tr><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td></tr>
			<tr><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td></tr>
			<tr><td><div></div></td><td><div></div></td><td><div></div></td><td><div class="b"></div></td><td><div class="w"></div></td><td><div></div></td><td><div></div></td><td><div></div></td></tr>
			<tr><td><div></div></td><td><div></div></td><td><div></div></td><td><div class="w"></div></td><td><div class="b"></div></td><td><div></div></td><td><div></div></td><td><div></div></td></tr>
			<tr><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td></tr>
			<tr><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td></tr>
			<tr><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td><td><div></div></td></tr>
		</table>
	</div>
</body>
</html>

(2) 表示形式

ロケット本体
PAGE
TOP
ロケット炎