今回はHTMLでテーブル(表)を作成できるtable
タグをご紹介したいと思います!
テーブルの基本的な作り方から、CSSを使用した見た目の変更方法まで解説してきます。
tableタグとは?
ExcelやNumbers、Googleスプレッドシートといった表計算できるものを思い浮かべてみてください。そういった表を作成できるのがtable
タグです。
tableタグの基本的な仕組み
HTMLでtableを使用する際には、4つのタグを使用して作成します!
table | 表全体を囲うタグ。 |
tr | 行(横一列)のタグ。 |
th | 見出し部分。その列が何のデータかを書く。 |
td | データ。各項目をここに書く。 |
tableタグの書き方:基本編
table
タグの基本的な仕組みはお分かりいただけたでしょうか?ここからはtable
タグの書き方について解説して行きます。
HTMLとCSSのファイル作成について、基礎知識がある前提で解説していきます。少し不安な方は、下の記事から勉強してみてください!
実際にtableタグを書いてみよう!
では、ここからは手順に沿ってtable
タグを書いて行きましょう!
まずは全体を囲うtable
タグを書きましょう。
<table>
</table>
次に、表の行を表すtr
タグを書いていきます。1行分のスペースが確保されるようなイメージです。
<table>
<tr></tr>
</table>
table
に必要な行数分、tr
タグを書きます。今回は見出しも合わせて4行必要なので、tr
を4つ書きます。
<table>
<tr></tr>
<tr></tr>
<tr></tr>
<tr></tr>
</table>
見出し(項目名)をth
タグへ書きます。
<table>
<tr>
<th>名前</th> <th>種類</th> <th>必殺技</th>
</tr>
<tr></tr>
<tr></tr>
<tr></tr>
</table>
最後に、各データをtd
タグへ書きます。
<table>
<tr>
<th>名前</th> <th>種類</th> <th>必殺技</th>
</tr>
<tr>
<td>アンパンマン</td> <td>粒あんパン</td> <td>アンパンチ</td>
</tr>
<tr>
<td>カレーパンマン</td> <td>カレーパン</td> <td>カレービュー</td>
</tr>
<tr>
<td>しょくぱんまん</td> <td>食パン</td> <td>しょくパンチ</td>
</tr>
</table>
縦列の数を揃えないとデザインが崩れてしまうので、注意しましょう!
これでテーブルは完成です!実際に書いてみると、こういうテーブルになります。
名前 | 種類 | 必殺技 |
---|---|---|
アンパンマン | 粒あんパン | アンパンチ |
カレーパンマン | カレーパン | カレービュー |
しょくぱんまん | 食パン | しょくパンチ |
タグの中にタグが入っている入れ子構造なので最初のうちは分かりづらいかと思いますので、書きながら覚えて行きましょう!
tableタグの書き方:応用編
基本的なtable
タグの書き方は分かりましたか?それでは、ここからは応用編のスタートです。
行・列を増やしたい
table
タグの行(横)や列(縦)は、好きなだけ増やすことができます!
- 行を追加:
tr
を追加で書く - 列を追加:
td
を追加で書く
もちろん、tableタグを作ったあとで
やっぱり見出しがあったほうが分かりやすいなあ……
と思ったときは、th
を後から追加すれば、見出しを付け足すことだってできちゃいます!
行や列を増やすときに注意しなければいけないことは、セルの数を揃えることです。
例えば、左のテーブルの、データの数を数えてみましょう。
- 3つ
- 3つ
- 3つ
- 2つ
一番下の行だけ、データの数が他の行と違いますよね。
このように数が違う場合、table
タグの表示は崩れてしまいます。
tr
やtd
、th
を使って行や列を増やす時は注意しましょう!
th(見出し)を縦に並べたい
先ほどの例では見出しを横に並べましたが、実は見出しを縦に並べてもOKなんです!
名前 | アンパンマン | カレーパンマン |
種類 | 粒あんパン | カレーパン |
声優 | 戸田恵子 | 柳沢三千代 |
<table>
<tr>
<th>名前</th><td>アンパンマン</td><td>カレーパンマン</td>
</tr>
<tr>
<th>種類</th><td>粒あんパン</td><td>カレーパン</td>
</tr>
<tr>
<th>声優</th><td>戸田恵子</td><td>柳沢三千代</td>
</tr>
</table>
tr
(行)の中にth
(見出し)とtd
(データ)が混在していますね。
このように、th
とtd
を同じtr
に入れることで、見出しが縦に並んだtable
が作成可能です!
table
タグの内容によって見やすさが変わってくるので、その時々で適切な並びにしてみましょう。
セルを結合させたい
ExcelやNumbers、Googleスプレッドシートなどでは、セルを結合して繋げることができますよね、それと同じようにHTMLのtable
タグもセル同士を結合することができます。
セル結合:縦
縦のセルを結合する場合は、td
(またはth
)のタグにrowspan=”数”
という属性を追加します。
<table>
<tr>
<th>名前</th> <th>種類</th> <th>製作者</th>
</tr>
<tr>
<td>アンパンマン</td> <td>粒あんパン</td> <td rowspan="3">ジャムおじさん</td>
</tr>
<tr>
<td>カレーパンマン</td> <td>カレーパン</td> <!-- <td>は書きません -->
</tr>
<tr>
<td>メロンパンナ</td> <td>メロンパン</td> <!-- <td>は書きません -->
</tr>
</table>
名前 | 種類 | 製作者 |
---|---|---|
アンパンマン | 粒あんパン | ジャムおじさん |
カレーパンマン | カレーパン | |
メロンパンナ | メロンパン |
上記コードのtd
(ジャムおじさん)を見ると、rowspan="3"
と書かれていますよね。
このrowspan
で指定された数分のセルが縦方向に結合されています。
さらに、3行目と4行目の最後のtd
は書かれていませんよね。このように、rowspan
で結合するセルは空白にしなければいけません。
セル結合:横
横方向へセルを繋げたい場合は、td
(またはth
)に対してcolspan=”数”
という属性を追加します。
rowspan
と同じように、記入した数の分だけセルが横に結合されます。
<table>
<tr>
<th>名前</th> <th colspan="2">必殺技</th><!-- <th>は書きません -->
</tr>
<tr>
<td>アンパンマン</td> <td>アンパンチ</td> <td>アンキック</td>
</tr>
<tr>
<td>カレーパンマン</td> <td>カレーパンチ</td> <td>カレービュー</td>
</tr>
<tr>
<td>しょくぱんまん</td> <td>しょくパンチ</td> <td>しょくキック</td>
</tr>
</table>
名前 | 必殺技 | |
---|---|---|
アンパンマン | アンパンチ | アンキック |
カレーパンマン | カレーパンチ | カレービュー |
しょくぱんまん | しょくパンチ | しょくキック |
上記コードのth
(必殺技)を見ると、colspan="2"
と書かれていますよね。
このcolspan
で指定された数分のセルが横方向に結合されています。
さらに、最後のth
は書かれていませんね。rowspan
と同じように、こちらも結合するセルは空白にしなければいけません。
tableタグまとめ
- HTMLで
table
タグを使用すると、表を作成できる tr
:行th
:見出しtd
:データ- 列や行を増やすことができる
- Excelなどの表計算ソフト同様、セルを結合することができる