WEBサイト制作

はじめてのHTML~テーブルタグ<table>で表を作る方法とCSSデザインサンプル

イメージ

テーブル(table)は表を作成するためのタグです。HTMLを勉強し始めて最初につまずくのが、テーブルタグかもしれません。

開始タグと終了タグが離れていたり、入れ子を注意しないとうまく表示されないなど、少しハードルがあがります。

でも、法則はいたってシンプル。ゆっくり考えながらやれば、問題なく使えるようになるはずです。

テーブルタグの書き方・使い方を、サンプルコードをたくさん使いながらご紹介していきます。

テーブルタグ(tableタグ)の書き方

基本的な書き方

テーブルタグの書き方サンプル

テーブル(表)は、table要素・tr要素・th要素・td要素を組み合わせて作ります。

表全体は、table要素。表全体を<table></table>で挟みます。
表の行が、tr要素。1行ごとに<tr></tr>で挟みます。(trはTable Rowの略)

行のなかのひとつひとつのカタマリを「セル」と呼びます。
セルには見出しセルとデータセルがあります。
1行にセルをいくつ入れるかで列の数が決まってきます。

見出しセルがth要素。テキスト(画像なども可)を<th></th>で挟みます。(thはTable Headerの略)
データセルがtd要素。テキスト(画像なども可)を<td></td>で挟みます。(tdはTable Dataの略)

細かく見てみましょう。
まずは表示イメージから。2行2列の表です。

表(イメージ)
表示イメージ

このコードは以下になります。

<table border="1">
 <tr>
  <th>科目</th>
  <th>点数</th>
 </tr>
 <tr>
  <td>算数</td>
  <td>100</td>
 </tr>
</table>

「科目」「点数」が見出しセルです。この2つのセルを<tr></tr>に挟み、これで1行2列を作っています。見出しセルはブラウザで見ると中央寄せ・太字で表示されます。見出しセルが必要ない場合、データセルだけの表を作っても構いません。

「算数」「100」がデータセルです。この2つのセルを<tr></tr>に挟み、これで1行2列を作っています。

行を増やしたいときは、<tr>~</tr>を増やします。
列を増やしたいときは、<tr>~</tr>のなかで<th>~</th>または<td>~</td>を増やします。
セルは結合することもできます(方法は後述します)。

表のなかに表を作ることもできます。その場合は<th>~</th>または<td>~</td>内に<table>~</table>を書きます。

補足
tableにborder="1"と入れると表に枠線が引かれます。ただデザイン要素はCSSで記述するのが基本です。今回は説明上、表の形状を分かりやすくするためborderを入れています。

コーディング時のアドバイス
テーブルタグは盛り込む要素が多くコードが複雑になるので、コーディング時はちょっと気を使います。コードのなかで、改行を入れたり、半角スペースを使って開始タグと終了タグの先頭を合わせたりすと、終了タグの書き忘れなどの記述ミスを防止することができます。

セルを結合させる方法

列(横)の結合

表(イメージ)
表示イメージ
<table border="1">
 <tr>
  <td colspan="2">1</td>
 </tr>
 <tr>
  <td>2</td>
  <td>3</td>
 </tr>
</table>

結合させるtdまたはthに対しcolspanという属性を追加します。属性の値には、つなげるセルの数を入れます。3つのセルをつなげるときは3を入れます。

行(縦)の結合

表(イメージ)
表示イメージ
<table border="1">
 <tr>
  <td>1</td>
  <td rowspan="2">2</td>
  </tr>
 <tr>
  <td>3</td>
 </tr>
</table>

結合させるtdまたはthに対しrowspanという属性を追加します。属性の値には、つなげるセルの数を入れます。3つのセルをつなげるときは3を入れます。

rowspanは結合を開始する最初の行に記載します。それ以降の結合した行ではtdまたはthがひとつ減ります。今回の場合、1行目は<td>~</td>が2セットありますが、2行目には1セットだけになっています。

表のサンプルコード 5種類

表の形状はいろいろですよね。実際にいくつか表のサンプルコードを紹介します。タグがどのような順番で書かれているかなど、参考にしてみてください。コピペして使用してもOKです。

サンプルコード1 3行2列

1行目を見出しセルにした3行2列の表を作ってみます。

表(イメージ)
表示イメージ
<table border="1">
 <tr>
  <th>科目</th>
  <th>点数</th>
 </tr>
 <tr>
  <td>算数</td>
  <td>100</td>
 </tr>
 <tr>
   <td>国語</td>
   <td>60</td>
 </tr>
</table>

サンプルコード2 3行3列

サンプルコード1から、右側に1列追加してみます。

表(イメージ)
表示イメージ
<table border="1">
 <tr>
  <th>科目</th>
  <th>点数</th>
  <th>平均</th>
  </tr>
 <tr>
  <td>算数</td>
  <td>100</td>
  <td>90</td>
  </tr>
 <tr>
   <td>国語</td>
   <td>60</td>
   <td>50</td>
  </tr>
</table>

サンプルコード3 3行3列

1番左の列を見出しセルにしてみます。

表(イメージ)
表示イメージ
<table border="1">
 <tr>
  <th>科目</th>
  <td>算数</td>
  <td>国語</td>
 </tr>
 <tr>
  <th>点数</th>
  <td>100</td>
  <td>60</td>
 </tr>
 <tr>
  <th>平均</th>
  <td>90</td>
  <td>50</td>
 </tr>
</table>

通常、見出しセルは最上部や一番左に設置することが多いですが、位置はどこでも構いません。例えば、1行目と3行目を見出しセルにするなどもできます。

サンプルコード4 4行4列

4行4列、最上部と一番左のどちらも見出しセルにしてみます。

表(イメージ)
表示イメージ
<table border="1">
  <tr>
    <th>営業</th>
    <th>月~金</th>
    <th>土日</th>
    <th>祝日</th>
  </tr>
  <tr>
    <th>朝</th>
    <td>9:00~10:00</td>
    <td>休</td>
    <td>休</td>
  </tr>
  <tr>
    <th>ランチ</th>
    <td>11:00~13:00</td>
    <td>10:00~15:00</td>
    <td>休</td>
  </tr>
  <tr>
    <th>ディナー</th>
    <td>17:00~21:00</td>
    <td>17:00~21:00</td>
    <td>休</td>
  </tr>
</table>

サンプルコード5 4行4列

サンプルコード4で、一部のセルを結合してみます。

表(イメージ)
表示イメージ
<table border="1">
  <tr>
    <th>営業</th>
    <th>月~金</th>
    <th>土日</th>
    <th>祝日</th>
  </tr>
  <tr>
    <th>朝</th>
    <td>9:00~10:00</td>
    <td>休</td>
    <td rowspan="3">休</td>
  </tr>
  <tr>
    <th>ランチ</th>
    <td>11:00~13:00</td>
    <td>10:00~15:00</td>
  </tr>
  <tr>
    <th>ディナー</th>
    <td colspan="2">17:00~21:00</td>
  </tr>
</table>

<td rowspan="3">で3行を結合しています。
<td colspan="2">で2列を結合しています。
セルを結合するときは、各<tr>~</tr>内のtdthの数に注意しましょう。

CSSを使って表をデザインする

少しだけ、表をCSSを使ってデザインしてみます。
書き方や使い方を参考にしてみてください。

<table>
 <tr>
  <th>科目</th>
  <th>点数</th>
  <th>平均</th>
  <th>評価</th>
  </tr>
 <tr>
  <td>算数</td>
  <td>100</td>
  <td>90</td>
  <td>A</td>
  </tr>
 <tr>
  <td>国語</td>
  <td>60</td>
  <td>50</td>
  <td>B</td>
 </tr>
</table>

このテーブルタグに対してスタイルを適用します。

見出しと枠線に色を付けたノーマルデザイン

table {
 border-collapse: collapse; /*隣接する枠線を重ねて表示*/
 border-spacing: 0; /*枠線を間隔をなしに*/
 width: 100%;
 text-align: center;
}
table th {
 background: #e3f6f5;
 border: solid 1px #666666;
 padding: 10px;
 width: 25%;
}
table td {
 border: solid 1px #666666;
 padding: 10px;
 width: 25%;
}
テーブルタグ デザイン(イメージ)

tableborderを指定すると、表の外側だけ線が引かれます。
各セルの外側に線を引きたいので、thtrに対してborderを指定しています。

各セルに枠線を入れると、セルが隣接してい箇所は線が2本分になるので太くなります。太いまま使うデザインももちろんありですが、今回は隣接した線は重ねて(1本で)表示させたいのでborder-collapse: collapse;を指定しています。

背景色を入れて文字を白抜きにしたデザイン

table {
 border-collapse: collapse;
 border-spacing: 0;
 width: 100%;
 text-align: center;
 background: #3dbfb8;
 color: #ffffff;
}
table th {
 border: solid 1px #ffffff;
 padding: 10px;
 width: 25%;
}
table td {
 border: solid 1px #ffffff;
 padding: 10px;
 width: 25%;
}
テーブルタグ デザイン(イメージ)

tableに対してbackgroundを指定し、背景色を入れています。
同様にtableに対してcolorを指定し、文字色を白にしています。

枠線を工夫したデザイン

table {
 border-collapse: collapse;
 border-spacing: 0;
 width: 100%;
 text-align: center;
}
table th {
 border-bottom: solid 3px #3dbfb8;
 padding: 10px;
 width: 25%;
 color: #3dbfb8
}
table td {
 border-bottom: solid 1px #3dbfb8;
 padding: 10px;
 width: 25%;
}
テーブルタグ デザイン(イメージ)

見出しセルthとデータセルtdに下線を入れています。

1行ごとに背景色を変えたデザイン

table {
 border-collapse: collapse;
 border-spacing: 0;
 width: 100%;
 text-align: center;
 border-top: solid 1px #3dbfb8;
}
table tr:nth-child(2n+1) {
 background: #e3f6f5;
}
table th,
table td {
 border-bottom: solid 1px #3dbfb8;
 padding: 10px;
 width: 25%;
}
テーブルタグ デザイン(イメージ)

tr:nth-child(2n+1)で奇数行を指定し、奇数行だけ背景色を付けています。tr:nth-child(2n)で偶数行の指定になります。


ウェブサイトを作っていると、表が必要になることがきっと出てきます。そんなときはテーブルタグを使って作成しましょう。タグのルールをしっかり覚えれば、さまざまな表を作成することができます。

Share

ブログランキング

記事が参考になったら応援クリックしていただけると励みになります。


にほんブログ村 IT技術ブログ WordPressへ