表形式データをマークアップする場合に(のみ)使用する。
慎重に使用しないとアクセシビリティ上の問題を引き起こす可能性がある。
スクリーンリーダーはテーブルをうまく読み上げられないことがある。
○スクリーンリーダーはテーブルをうまく読み上げられないことがある。
○レイアウトに使用したテーブルは画面の小さなデバイスにとって邪魔になる。
アクセシビリティを向上させるために。
<table summary="This table is a chart of all Boston Red Sox World Series wins.">
<caption>Boston Red Sox World Series Championships</caption>
<tr>
<th id="year">Year</th>
<th id="opponent">Opponent</th>
<th id="record" abbr="Record">Season Record (W-L)</th>
</tr>
<tr>
<td headers="year">1918</td>
<td headers="oppnent">Chicago Cubs</td>
<td headers="record">75-51</td>
</tr>
<tr>
<td headers="year">1916</td>
<td headers="oppnent">Brooklyn Robins</td>
<td headers="record">91-63</td>
</tr>
<tr>
<td headers="year">1915</td>
<td headers="oppnent">Philadelphia Phillies</td>
<td headers="record">101-50</td>
</tr>
<tr>
<td headers="year">1912</td>
<td headers="oppnent">New York Giants</td>
<td headers="record">105-47</td>
</tr>
</table>
Year | Opponent | Season Record (W-L) |
---|---|---|
1918 | Chicago Cubs | 75-51 |
1916 | Brooklyn Robins | 91-63 |
1915 | Philadelphia Phillies | 101-50 |
1912 | New York Giants | 105-47 |
<table>
<thead>
<tr>
・・・テーブルヘッダ・・・
</tr>
</thead>
<tfoot>
<tr>
・・・テーブルフッタ・・・
</tr>
</tfoot>
<tbody>
<tr>
・・・テーブルデータ行・・・
</tr>
<tr>
・・・テーブルデータ行・・・
</tr>
<tr>
・・・テーブルデータ行・・・
</tr>
</tbody>
</table>
・・・テーブルヘッダ・・・ |
---|
・・・テーブルフッタ・・・ |
・・・テーブルデータ行・・・ |
・・・テーブルデータ行・・・ |
・・・テーブルデータ行・・・ |
<thead>と<tfoot>を使用すると、テーブルヘッダおよびフッタ情報をデータ行の前に配置することができる。
これらの要素はテーブルに構造的な意味を追加するだけでなく、<tr>要素に余計なclass属性を追加せずにCSSで見栄えを変更するのに役立つ「スタイル・フック」を提供する。
tbody { background-color: gray; }
<tbody>要素がなければ、グレーの背景にしたい各<tr>要素にclass属性を追加しなければならない。
・・・テーブルヘッダ・・・ |
---|
・・・テーブルフッタ・・・ |
・・・テーブルデータ行・・・ |
・・・テーブルデータ行・・・ |
・・・テーブルデータ行・・・ |
<table>タグにborder="1"を入れることをやめ、CSSを使用する
<th>および<td>セルの二つの辺(右辺と底辺)に1ピクセルのボーダーを追加する。
th, td { border-right: 1px solid #999; border-bottom: 1px solid #999; }
Year | Opponent | Season Record (W-L) |
---|---|---|
1918 | Chicago Cubs | 75-51 |
1916 | Brooklyn Robins | 91-63 |
1915 | Philadelphia Phillies | 101-50 |
1912 | New York Giants | 105-47 |
つじつまを合わせるためには、個々のセルの2辺のみにボーダーを追加するのが、4辺に等しくボーダーを持つグリッドを作成するためのキーポイントである。
もし、各セルの4辺にボーダーを追加したとしたら、セルとセルが接する上辺と左辺でボーダーが重なってしまう。
ボーダーがまだ引かれていない、テーブル全体における上辺と左辺にテーブル要素を用いてボーダーを追加する。
table { border-top: 1px solid #999; border-left: 1px solid #999; } th, td { border-right: 1px solid #999; border-bottom: 1px solid #999; }
Year | Opponent | Season Record (W-L) |
---|---|---|
1918 | Chicago Cubs | 75-51 |
1916 | Brooklyn Robins | 91-63 |
1915 | Philadelphia Phillies | 101-50 |
1912 | New York Giants | 105-47 |
ほとんどのブラウザが持つデフォルトのマージンのために、ボーダー間にできるわずかな隙間を解消するために、テーブル要素にborder-collapseプロパティを利用する。
table {
border-top: 1px solid #999;
border-left: 1px solid #999;
border-collapse: collapse;
}
th, td {
border-right: 1px solid #999;
border-bottom: 1px solid #999;
}
Year | Opponent | Season Record (W-L) |
---|---|---|
1918 | Chicago Cubs | 75-51 |
1916 | Brooklyn Robins | 91-63 |
1915 | Philadelphia Phillies | 101-50 |
1912 | New York Giants | 105-47 |
Macintosh版Internet Explorer以外のほとんどのブラウザではCSSを簡略化できる。
IE for Macではボーダーの一部が重なり合って太くなる。これはIE for Macがborder-collapseプロパティに対応していないため。
IE for Macは開発が終了しているブラウザでありSafariに取って代わられつつあること、また、表示上の問題であってテーブルの持つ機能に変わりはないこと、などの理由から、シンプルな方法を採用しても支障ない。
table { border-collapse: collapse; } th, td { border: 1px solid #999; }
Year | Opponent | Season Record (W-L) |
---|---|---|
1918 | Chicago Cubs | 75-51 |
1916 | Brooklyn Robins | 91-63 |
1915 | Philadelphia Phillies | 101-50 |
1912 | New York Giants | 105-47 |
table {
border-collapse: collapse;
}
th, td {
padding: 10px;
border: 1px solid #999;
}
Year | Opponent | Season Record (W-L) |
---|---|---|
1918 | Chicago Cubs | 75-51 |
1916 | Brooklyn Robins | 91-63 |
1915 | Philadelphia Phillies | 101-50 |
1912 | New York Giants | 105-47 |
table { border-top: 1px solid #999; border-left: 1px solid #999; border-collapse: collapse; } caption { font-family: Arial, sans-serif; color: #933; padding-bottom: 6px; } th, td { padding: 10px; border-right: 1px solid #999; border-bottom: 1px solid #999; } th { font-family: Verdana, sans-serif; background: #ccc; }
Year | Opponent | Season Record (W-L) |
---|---|---|
1918 | Chicago Cubs | 75-51 |
1916 | Brooklyn Robins | 91-63 |
1915 | Philadelphia Phillies | 101-50 |
1912 | New York Giants | 105-47 |
th {
font-family: Verdana, sans-serif;
background: url(th_stripe.gif);
}
Year | Opponent | Season Record (W-L) |
---|---|---|
1918 | Chicago Cubs | 75-51 |
1916 | Brooklyn Robins | 91-63 |
1915 | Philadelphia Phillies | 101-50 |
1912 | New York Giants | 105-47 |
非視覚的手段でブラウジングする人々を支援するために割り当てた、各<th>要素のid属性値を利用し、各<th>タグに特定のアイコンを背景画像として表示させる。
アイコン画像の表示がCSSで制御されているため、サイトのデザインを変更したりアップデートする際に簡単に交換できる。
マークアップの変更は不要。
th { font-family: Verdana, sans-serif; } #year { padding-left: 26px; background: #ccc url(icon_year.gif) no-repeat 10px 50%; } #opponent { padding-left: 26px; background: #ccc url(icon_opp.gif) no-repeat 10px 50%; } #record { padding-left: 26px; background: #ccc url(icon_rec.gif) no-repeat 10px 50%; }
Year | Opponent | Season Record (W-L) |
---|---|---|
1918 | Chicago Cubs | 75-51 |
1916 | Brooklyn Robins | 91-63 |
1915 | Philadelphia Phillies | 101-50 |
1912 | New York Giants | 105-47 |
背景に関する見栄えを指定するのに、より簡単な、一括して指定する方法を取っている。
例:background: #ccc url(icon_rec.gif) no-repeat 10px 50%;
しかし、backgroundプロパティを使用し、かつ背景色の指定がなく背景画像のみを指定した場合は、<th>要素のほうのbackgroundプロパティで設定した背景色の設定が上書きされることになる。
th要素へのスタイルで各見出しに共通の指定(ここでは、パディング、背景色、位置)をし、#year、#opponent、#recordへのスタイル指定はそれらに固有の内容(ここでは、画像パス)だけにする。
th { font-family: Verdana, sans-serif; padding-left: 26px; background-color: #ccc; background-repeat: no-repeat; background-position: 10px 50%; } #year { background-image: url(icon_year.gif); } #opponent { background-image: url(icon_opp.gif); } #record { background-image: url(icon_rec.gif); }