テーブルの構造とテーブル作成で使用するタグは、以下の通りです。
<table>(テーブルの定義情報)</table>
テーブルの範囲を指定します。
<caption>(主題の定義情報)</caption>
表のキャプション(主題)を指定します。
<tr>1 行範囲の定義情報</tr>
Table Row の略であり 1 行の範囲を指定します。
<th>見出し項目の定義情報</th>
Table Header の略であり見出し項目を指定します。
セルを横方向つなげる時は、colspan 属性で「colspan="つなげたい数"」を指定します。セルを縦方向つなげる時は、rowspan 属性で「rowspan="つなげたい数"」を指定します。
<td>データ項目の定義情報</td>
Table Data の略でありデータ項目を指定します。
セルを横方向つなげる時は、colspan 属性で「colspan="つなげたい数"」を指定します。セルを縦方向つなげる時は、rowspan 属性で「rowspan="つなげたい数"」を指定します。
<colgroup>列グループの定義情報</colgroup>
列のグループを定義します。colgroup 要素を記述する場合は、table タグの直下(または、caption タグの直下)に書く必要があります。colgroup タグに指定できるスタイルは、background/border/width/visibility プロパティです。
<thead>表のヘッダーグループの定義情報</thead>
表のヘッダーグループを定義します。省略可能ですが指定するとよりテーブル構造を明確化できます。
<tbody>表のボディグループの定義情報</tbody>
表のボディグループを定義します。省略可能ですが指定するとよりテーブル構造を明確化できます。
<tfoot>表のフッタグループの定義情報</tfoot>
表のフッタグループを定義します。省略可能ですが指定するとよりテーブル構造を明確化できます。
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>
商品名 | 単価 | 個数 |
---|---|---|
りんご | 80 | 10 |
みかん | 40 | 20 |
いちご | 50 | 80 |
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>
CSS
table {
border-collapse: collapse;
}
table caption {
padding: 5px 0;
}
table th {
width: 150px;
padding: 5px 0;
background-color: #eee;
text-align: center;
border: 1px #ccc solid;
}
table td {
width: 150px;
padding: 5px 0;
text-align: center;
border: 1px #ccc solid;
}
商品名 | 単価 | 個数 |
---|---|---|
りんご | 80 | 10 |
みかん | 40 | 20 |
いちご | 50 | 80 |
border-collapse: 隣接セルの表示方法;
テーブルの隣接するセルの表示方法を指定します。
隣接セルの表示方法は、以下の値で指定します。
border-spacing: 隣接セルのボーダー間の間隔;
テーブルの隣接するセルのボーダー間の間隔を指定します。本プロパティは、border-collapse プロパティに「separate」が指定されている時に有効になります。border-spacing の初期値は、仕様としては、0 ですが、主要なブラウザの初期値は、1px に設定されているようです。
隣接セルのボーダー間の間隔は、複数指定でき指定した個数により対象位置が異なります。
集計表のサンプルです。行の区別がしやすいうように行単位で背景色の変更しています。
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: "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "MS Pゴシック", "MS PGothic", 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>
セルがタイル風になったサンプルです。セル間に隙間を作ってタイル風にしています。
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: "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "MS Pゴシック", "MS PGothic", 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>
料金プランの比較表のサンプルです。料金が目立つようにすると同時に申し込みボタンが配置されています。
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: "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "MS Pゴシック", "MS PGothic", 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>
プロフィール表のサンプルです。複数個所への表題の配置とセルの結合を行っています。
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: "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "MS Pゴシック", "MS PGothic", 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>
オセロ盤のサンプルです。クラス名の付与を行うことでコマの配置が行えます。
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: "Hiragino Sans W3", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "メイリオ", "Meiryo", "MS Pゴシック", "MS PGothic", 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>