テーブル(表)を作成するには <table> を用います。
| 国名 | 首都 |
|---|---|
| 日本 | 東京 |
| 大韓民国 | ソウル |
| 中国 | 北京 |
<table border="1"> <caption>【各国の首都】</caption> <tr><th>国名</th><th>首都</th></tr> <tr><td>日本</td><td>東京</td></tr> <tr><td>大韓民国</td><td>ソウル</td></tr> <tr><td>中国</td><td>北京</td></tr> </table>
なお、<table>タグの属性 border="1" (または、"") は枠線を表示する指定です。 (HTML4.01 までは、枠線の太さを指定できましたが、HTML5 では、枠線の太さは CSS の border-widthプロパティ で指定します。)
テーブルの中身を改行させないようにするには、<tr>、<th>、<td> などのタグに CSS で white-spaceプロパティ の値に nowrap を指定します。
| ああああああああああ | いいいいいいいいいい | うううううううううう |
|---|
<table border="1">
<tr>
<th style="white-space:nowrap;">ああああああああああああああああああ</th>
<th>いいいいいいいいいいいいいいいいいい</th>
<th>うううううううううううううううううう</th>
</tr>
</table>
テーブル内のフォントの大きさや色を一度に指定するには、CSS の font(font-size,font-family,font-weight)や color などのプロパティを用います。 下記の記述を <head>~</head> の間に追記してみてください。
<style type="text/css">
<!--
td, th {
color: red;
font-size: 200%;
font-family: "MS ゴシック";
}
-->
</style>
具体例として、たとえば、
<html>
<head>
<title>テーブル内のフォントを一度に指定</title>
<style type="text/css">
<!--
td, th {
color: red;
font-size: 200%;
font-family: "MS ゴシック";
}
-->
</style>
</head>
<body>
<table border=1>
<caption>【各国の首都】</caption>
<tr><th>国名</th><th>首都</th></tr>
<tr><td>日本</td><td>東京</td></tr>
<tr><td>大韓民国</td><td>ソウル</td></tr>
<tr><td>中国</td><td>北京</td></tr>
</table>
</body>
</html>
をメモ帳にコピーして、.html という拡張子をつけた名前で保存してみましょう。 そして、IEで表示して、上の基本的なテーブルと比べてみてください。
テーブルの幅や高さを指定するには、<table>、<tr>、<th>、<td> に対して CSS の widthプロパティ や heightプロパティ を用います。
| 東京都 | 12,345,678 |
| 広島県 | 987,654 |
| 東京都 | 12,345,678 |
| 広島県 | 987,654 |
<table border="1"> <tr><td>東京都</td><td>12,345,678</td></tr> <tr><td>広島県</td><td>987,654</td></tr> </table>
<table border="1" style="width:200px; height:80px;"> <tr><td>東京都</td><td>12,345,678</td></tr> <tr><td>広島県</td><td>987,654</td></tr> </table>
[注意] HTML5 では、HTML4.01 までと異なり、<table> タグに width属性や height属性は指定できないので注意してください。
<tr>、<th>、<td> に CSS の text-alignプロパティ による指定をすることで、カラムの内容を右寄せ、中寄せ、左寄せすることができます。
| 東京都 | 12,345,678 |
| 広島県 | 987,654 |
| 東京都 | 12,345,678 |
| 広島県 | 987,654 |
| 東京都 | 12,345,678 |
| 広島県 | 987,654 |
<table border="1" style="width:150px;"> <tr><td>東京都</td><td>12,345,678</td></tr> <tr><td>広島県</td><td>987,654</td></tr> </table>
<table border="1" style="width:150px;"> <tr><td>東京都</td><td style="text-align:right;">12,345,678</td></tr> <tr><td>広島県</td><td style="text-align:right;">987,654</td></tr> </table>
<table border="1" style="width:150px;"> <tr><td>東京都</td><td style="text-align:center;">12,345,678</td></tr> <tr><td>広島県</td><td style="text-align:center;">987,654</td></tr> </table>
[注意] HTML5 では、HTML4.01 までと異なり、<table>、<tr>、<th>、<td> などのタグに align属性 (= 廃止)は指定できないので注意してください。
<tr>、<th>、<td> に CSS の vertical-alignプロパティ による指定をするすることで、カラムの内容を上に寄せたり、下に寄せたり、また中央配置にしたりすることができます。
| これは下寄せです。 | これは上寄せです。 | これは中央配置です。 |
<table border="1" style="height:45px;">
<tr>
<td style="vertical-align:bottom;">これは下寄せです。</td>
<td style="vertical-align:top;">これは上寄せです。</td>
<td style="vertical-align:center;">これは中央配置です。</td>
</tr>
</table>
[注意] HTML5 では、HTML4.01 までと異なり、<table>、<tr>、<th>、<td> などのタグに valign属性 (= 廃止)は指定できないので注意してください。
テーブルに背景色を指定するには、<table>、<tr>、<th>、<td> に CSS の background-colorプロパティ を用います。
| ■■ | ●● |
|---|---|
| □□ | ◎◎ |
| ◇◇ | ○○ |
<table border="1" style="background-color:#ffcccc"> <tr><th>■■</th><th>●●</th></tr> <tr><td>□□</td><td>◎◎</td></tr> <tr><td>◇◇</td><td>○○</td></tr> </table>
[注意] HTML5 では、HTML4.01 までと異なり、<table>、<tr>、<th>、<td> などのタグに bgcolor属性 (= 廃止)は指定できないので注意してください。
テーブルに背景色や背景画像を指定するには、<table>、<tr>、<th>、<td> に CSS の background-image を用います。
| ■■ | ●● |
|---|---|
| □□ | ◎◎ |
| ◇◇ | ○○ |

| ■■ | ●● |
|---|---|
| □□ | ◎◎ |
| ◇◇ | ○○ |
<table border="1" style="background-image:url(colosseo.jpg);"> <tr><th>■■</th><th>●●</th></tr> <tr><td>□□</td><td>◎◎</td></tr> <tr><td>◇◇</td><td>○○</td></tr> </table>
[注意] HTML5 では、HTML4.01 までと異なり、<table>、<tr>、<th>、<td> などのタグに background属性 (= 廃止)は指定できないので注意してください。
テーブルを横に二つ並べるには、<table> に CSS の floatプロパティ を用います。 また、それに続く文章などが回りこまないようにするため、2つ目のテーブルの後の要素には clearプロパティ を設定します。
| ああ | ああ |
| ああ | ああ |
| ああ | ああ |
| ああ | ああ |
<table border="1" style="float:left; margin: 0px 5px;"> <tr><td>ああ</td><td>ああ</td></tr> <tr><td>ああ</td><td>ああ</td></tr> </table> <table border="1" style="float:left; margin: 0px 5px;"> <tr><td>ああ</td><td>ああ</td></tr> <tr><td>ああ</td><td>ああ</td></tr> </table> <br style="clear:left;">
テーブルを左側に配置し後続文章を右側に回り込ませるには、<table> に CSS の floatプロパティ を用います。 また、あるところから後の文章などが回り込まないようにするためには、<br>,<p>,<div> などの要素で clearプロパティ を設定します。
| ああ | ああ |
| ああ | ああ |
| いい | いい |
| いい | いい |
| うう | うう |
| うう | うう |
<table border="1" style="float:left; margin:0px 1em;">
<tr><td>ああ</td><td>ああ</td></tr>
<tr><td>ああ</td><td>ああ</td></tr>
<tr><td>いい</td><td>いい</td></tr>
<tr><td>いい</td><td>いい</td></tr>
<tr><td>うう</td><td>うう</td></tr>
<tr><td>うう</td><td>うう</td></tr>
</table>
ここで改行します。<br>改行しました。
<br>{ float: left; } の場合,後続の文章は通常の <br> だけでは
<br>この位置に改行されますが,<br> に <em>style="clear:left;"</em> とした
<br> style属性を追加すると,行頭を表より下の左端(left)から表示できる
<br style="clear:left;">この位置に改行されます。
テーブルを右側に配置し後続文章を左側に回り込ませるには、<table> に CSS の floatプロパティ を用います。 また、あるところから後の文章などが回り込まないようにするためには、<br>,<p>,<div> などの要素で clearプロパティ を設定します。
| ああ | ああ |
| ああ | ああ |
| いい | いい |
| いい | いい |
| うう | うう |
| うう | うう |
<table border="1" style="float:right; margin: 0px 1em;">
<tr><td>ああ</td><td>ああ</td></tr>
<tr><td>ああ</td><td>ああ</td></tr>
<tr><td>いい</td><td>いい</td></tr>
<tr><td>いい</td><td>いい</td></tr>
<tr><td>うう</td><td>うう</td></tr>
<tr><td>うう</td><td>うう</td></tr>
</table>
ここで改行します。<br>改行しました。
<br>{ float: right; } の場合,後続の文章は通常の <br> だけでは
<br>この位置に改行されますが,<br> に <em>style="clear:right;"</em> とした
<br> style属性を追加すると,行頭を表より下の左端(left)から表示できる
<br style="clear:right;">この位置に改行されます。
テーブルを中央に配置するには、<table> に対して CSS の margin-left と margin-right の2つのプロパティでともに "auto" を指定します。 これらのプロパティの値は、marginプロパティを用いても指定可能です。 指定方法の詳細は、 これらのプロパティの解説を見てください。
| ■■ | ●● |
|---|---|
| □□ | ◎◎ |
| ◇◇ | ○○ |
<table border="1" style="margin: 0px auto;"> <tr><th>■■</th><th>●●</th></tr> <tr><td>□□</td><td>◎◎</td></tr> <tr><td>◇◇</td><td>○○</td></tr> </table>
テーブルの枠線の太さを変えるには、<table> に CSS の border-widthプロパティ を用います。
ただし、border-widthプロパティ を指定する場合には、border-styleプロパティ の指定も一緒に行わないと、一般的に枠線は表示されません。(IE8は例外的に表示されるようです。) これは、border-styleプロパティ の初期値が "none"(枠線なし)になっているためです。
指定方法の詳細は、 border-widthプロパティ の解説を見てください。
| ■■ | ●● |
|---|---|
| □□ | ◎◎ |
| ◇◇ | ○○ |
<table border="1" style="border-style:solid; border-width: 2px 1em 0.5em 6px;">
<tr><th>■■</th><th>●●</th></tr>
<tr><td>□□</td><td>◎◎</td></tr>
<tr><td>◇◇</td><td>○○</td></tr>
</table>
テーブルの枠線の色を変えるには、<table> に CSS の border-colorプロパティ を用います。 指定方法の詳細は、 border-colorプロパティ の解説を見てください。
なお、以下例では枠線の太さの変更も併せて行っていますので、枠線を表示するためには、さらに、border-styleプロパティ の指定も必要です。(「枠線の太さを変えるには」を参照。)
| ■■ | ●● |
|---|---|
| □□ | ◎◎ |
| ◇◇ | ○○ |
<table border="1" style="border-style:solid; border-width:3px;
border-color:#ff0000 #00ff00 #00ff00 #ff0000;">
<tr><th>■■</th><th>●●</th></tr>
<tr><td>□□</td><td>◎◎</td></tr>
<tr><td>◇◇</td><td>○○</td></tr>
</table>
テーブルの枠線をシンプルにするには、<table> に CSS の border-collapseプロパティ,border-styleプロパティ,border-widthプロパティ を用います。
| ■■ | ●● |
|---|---|
| □□ | ◎◎ |
| ◇◇ | ○○ |
<table border="1" style="border-collapse:collapse; border-style:solid; border-width:2px;"> <tr><th>■■</th><th>●●</th></tr> <tr><td>□□</td><td>◎◎</td></tr> <tr><td>◇◇</td><td>○○</td></tr> </table>
テーブルの枠線を点線にするには、CSS の borderプロパティ や border-styleプロパティ などを使って点線の枠線を引きます。
<html>
<head>
<title>サンプル</title>
<style type="text/css">
<!--
.dot { border-bottom: 1px dotted gray; border-left: 1px dotted gray; border-spacing: 0px; }
.dot th { border-top: 1px dotted gray; border-right: 1px dotted gray; border-spacing: 0px; }
.dot td { border-top: 1px dotted gray; border-right: 1px dotted gray; border-spacing: 0px; }
-->
</style>
</head>
<body>
<table class="dot">
<tr><th>あああ</th><th>あああ</th></tr>
<tr><td>あああ</td><td>あああ</td></tr>
<tr><td>あああ</td><td>あああ</td></tr>
<tr><td>あああ</td><td>あああ</td></tr>
</table>
</body>
</html>
これをIEで表示すると このように なります。
「とほほのWWW入門」の各ページで使用されている次のようなスタイルのテーブルは、実は HTML4.01 までの規格により作成されております(2012.05.25現在)。
| フォント名 | 説明 |
|---|---|
| MS ゴシック | Microsoft 等幅ゴシック。 |
| MS 明朝 | Microsoft 等幅明朝。 |
| MS Pゴシック | Microsoft プロポーショナルゴシック。 |
| MS P明朝 | Microsoft プロポーショナル明朝。 |
| MS UI Gothic | Microsoft ユーザインタフェース用ゴシック。 |
しかし、ここに表示したものは、HTML5 と CSS で作成したものであり、次のようにすると作れます。
<html>
<head>
<title>杜甫々氏ご愛用のテーブル</title>
<style type="text/css">
<!--
TABLE.kw { /* KeyWord */
border-color:#808080 #ffffff #ffffff #808080;
border-width: 1px;
border-style: solid;
border-spacing: 0px;
padding: 0px;
}
TABLE.kw TH, TABLE.kw TD { /* KeyWord */
border-color:#ffffff #808080 #808080 #ffffff;
border-width: 1px;
border-style: solid;
padding: 2.2px;
}
TABLE.kw TH { /* KeyWord */
background-color:#c0c0c0;
}
-->
</style>
</head>
<body>
<table border="1" class="kw" style="margin:0px auto;">
<caption style="text-align:left;">【Windows日本語フォント】</caption>
<tr bgcolor="#c0c0c0"><th>フォント名</th><th>説明</th></tr>
<tr><td style="white-space:nowrap;">MS ゴシック</td>
<td>Microsoft 等幅ゴシック。</td>
</tr>
<tr><td style="white-space:nowrap;">MS 明朝</td>
<td>Microsoft 等幅明朝。</td>
</tr>
<tr><td style="white-space:nowrap;">MS Pゴシック</td>
<td>Microsoft プロポーショナルゴシック。</td>
</tr>
<tr><td style="white-space:nowrap;">MS P明朝</td>
<td>Microsoft プロポーショナル明朝。</td>
</tr>
<tr><td style="white-space:nowrap;">MS UI Gothic</td>
<td>Microsoft ユーザインタフェース用ゴシック。</td>
</tr>
</table>
</body>
</html>
各設定がどのように反映されているのかを考えてみると、テーブルの見栄えに関する指定の勉強にもなると思われます。
「とほほのWWW入門」の 逆引きリファレンスページでは、HTML4.01 以前の手法として、角の丸いテーブルは、下記のように 5種類の画像を用いて実現できると紹介されております。
| 本文・・・ | ||
<!DOCTYPE html>
<html>
<head>
<meta lang="ja" charset="UTF-8">
<title>サンプル</title>
<style type="text/css">
<!--
TABLE.sample { border-collapse:collapse; }
TABLE.sample, TABLE.sample TR, TABLE.sample TD {
font-size: 1%; border-style: solid; border-color: #000000; border-spacing:0px;
border-width:0px; padding:0px; margin:0px;
}
TABLE.sample TD.normal { font-size: medium; }
IMG {
border-style: none; border-spacing:0px; border-width:0px; padding:0px; margin:0px;
}
-->
</style>
</head>
<body>
<table class="sample">
<tr>
<td><img src="../image/rtbl1.gif" alt="rtbl1" height="20" width="20"></td>
<td><img src="../image/rtbl5.gif" alt="rtbl5" height="20" width="100"></td>
<td><img src="../image/rtbl2.gif" alt="rtbl5" height="20" width="20"></td>
</tr>
<tr>
<td><img src="../image/rtbl5.gif" alt="rtbl5" height="50" width="20"></td>
<td class="normal" style="background-image: url(../image/rtbl5.gif);">本文・・・</td>
<td><img src="../image/rtbl5.gif" alt="rtbl5" height="50" width="20"></td>
</tr>
<tr>
<td><img src="../image/rtbl3.gif" alt="rtbl3" height="20" width="20"></td>
<td><img src="../image/rtbl5.gif" alt="rtbl5" height="20" width="100"></td>
<td><img src="../image/rtbl4.gif" alt="rtbl4" height="20" width="20"></td>
</tr>
</table>
</body>
</html>
確かに、実際これをIEで表示すると このように なります。
しかし、HTML5+CSS3 では、このような面倒なことをしなくても簡単に角の丸いテーブルが作成できます。 また、さらに4つの角の丸みを個別に変えることも可能です。
それは、CSS3 では border-radius という便利なプロパティが用意されているからです。 ただし、非常に残念なことに IE8 はこのプロパティには未対応です。(最新のブラウザーでは対応済みにものがほとんどです。)
以下は、Firefox などの border-radiusプロパティに対応済みのブラウザーで表示してみてください。(IE9 は OK です。)
| あああ | いいい | ううう |
| かかか | ききき | くくく |
| さささ | ししし | すすす |
<html>
<head>
<title>サンプル:角の丸いテーブル</title>
<style type="text/css">
<!--
TABLE.radius {
border-style:solid;
border-width:10px;
border-color:green;
border-radius: 2em 0.6em 1em 0.3em;
}
TABLE.radius TR, TABLE.radius TD {
color: #ffffff;
background-color:#8484ee ;
}
TD.topl { /* Top-Left */
border-radius: 1.4em 0px 0px 0px;
padding-left: 0.6em;
}
TD.left { /* Left */
padding-left: 0.6em;
}
TD.btmr { /* Bottom-Right */
border-radius: 0px 0px 0.4em 0px;
padding-right: 0.35em;
}
TD.right { /* Right */
padding-right: 0.35em;
}
-->
</style>
</head>
<body>
<table class="radius">
<tr><td class="topl">あああ</td><td>いいい</td><td class="right">ううう</td></tr>
<tr><td class="left">かかか</td><td>ききき</td><td class="right">くくく</td></tr>
<tr><td class="left">さささ</td><td>ししし</td><td class="btmr">すすす</td></tr>
</table>
</body>
</html>