【6日でできるHTML入門】表に使うCSS

 表組みの見た目を自在にカスタマイズするには、CSSでセルの大きさ・余白・背景色を整えたり、キャプションの位置を変えたり、隣り合うセルの境界線や間隔を制御したりする必要があります。
 ここでは、実際に使えるサンプルHTMLを動かしながら、表に使う代表的なCSSプロパティを順に解説していきます。

1.セルの書式指定

テーブルを見やすくするには、まず th/td セルの基本スタイルを整えましょう。

1.1. 共通セルの整形(th, td

以下の例では、全ての thtd に対して枠線・サイズ・余白・文字揃えを一括指定しています。

ファイル名: lesson22-1.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>📊 セル共通スタイル</title>
  <style>
    table {
      border-collapse: collapse; /* 後述 */
    }
    th, td {
      border: solid 1px #444;    /* 枠線 */
      width: 120px;               /* 横幅 */
      height: 40px;               /* 高さ */
      padding: 8px;               /* 内部余白 */
      text-align: center;         /* 横揃え */
      vertical-align: middle;     /* 縦揃え */
    }
  </style>
</head>
<body>
  <h1>📊 共通セルの書式指定</h1>
  <table>
    <tr>
      <th>商品</th><th>価格</th><th>在庫</th>
    </tr>
    <tr>
      <td>コーヒー</td><td>¥350</td><td>〇</td>
    </tr>
    <tr>
      <td>紅茶</td><td>¥300</td><td>△</td>
    </tr>
  </table>
</body>
</html>
プロパティ説明
border枠線(実線 1px 色#444)
widthセルの横幅
heightセルの高さ
paddingセル内マージン
text-align水平方向の文字揃え
vertical-align垂直方向の文字揃え

ブラウザの出力例

1.2. 個別セルの背景色・揃え

特定の列やセルだけ異なるスタイルにしたい場合は、クラスやタグセレクタで個別指定します。

ファイル名: lesson22-2.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>🎨 個別セルスタイル</title>
  <style>
    table { border-collapse: collapse; }
    th, td {
      border: solid 1px #444;
      padding: 6px 10px;
    }
    /* 見出しセルの背景色 */
    th { background-color: #ffebcc; }
    /* 在庫セルの右揃え・淡色背景 */
    td.stock {
      text-align: right;
      background-color: #eef;
    }
  </style>
</head>
<body>
  <h1>🎨 個別セルの書式指定</h1>
  <table>
    <tr>
      <th>商品</th><th>価格</th><th>在庫</th>
    </tr>
    <tr>
      <td>コーヒー</td><td>¥350</td><td class="stock">〇</td>
    </tr>
    <tr>
      <td>紅茶</td><td>¥300</td><td class="stock">△</td>
    </tr>
  </table>
</body>
</html>

ブラウザの出力例

2.キャプションの書式指定(caption-side

表の冒頭や末尾に説明文(キャプション)を付けるには <caption> を使います。

2.1. 基本的なキャプション

ファイル名: lesson22-3.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>🏷️ 基本キャプション</title>
  <style>
    table { border-collapse: collapse; }
    th, td { border: 1px solid #444; width: 120px; padding: 6px 8px; }
  </style>
</head>
<body>
  <h1>🏷️ 基本キャプション</h1>
  <table>
    <caption>☕ ドリンクメニュー</caption>
    <tr><th>名前</th><th>価格</th></tr>
    <tr><td>コーヒー</td><td>¥350</td></tr>
    <tr><td>紅茶</td><td>¥300</td></tr>
  </table>
</body>
</html>

ブラウザの出力例

2.2. 下部に配置するキャプション

ファイル名: lesson22-4.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>👇 下部キャプション</title>
  <style>
    table { border-collapse: collapse; }
    th, td { border: 1px solid #444; padding: 6px 8px; }
    caption {
      caption-side: bottom;   /* top / bottom */
      text-align: right;      /* 配置 */
      font-size: 0.9em;
      padding-top: 4px;
    }
  </style>
</head>
<body>
  <h1>👇 下部キャプション</h1>
  <table>
    <caption>(2025年4月 更新)</caption>
    <tr><th>名前</th><th>価格</th></tr>
    <tr><td>コーヒー</td><td>¥350</td></tr>
    <tr><td>紅茶</td><td>¥300</td></tr>
  </table>
</body>
</html>

ブラウザの出力例

3.セルとセルの間隔(border-collapse

セル同士が分離するか共有するかを制御します。

3.1. collapse:枠線を共有

ファイル名: lesson22-5.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>🔗 border-collapse: collapse</title>
  <style>
    table {
      border-collapse: collapse; /* 隙間なくスッキリ */
    }
    th, td {
      border: 2px solid #336699;
      padding: 6px 10px;
    }
  </style>
</head>
<body>
  <h1>枠線共有(collapse)</h1>
  <table>
    <tr><th>A</th><th>B</th></tr>
    <tr><td>1</td><td>2</td></tr>
  </table>
</body>
</html>
説明
collapse隣接セルで枠線を重ねて(共有して)表示
separateセルごとに枠線を独立して表示(初期値)

ブラウザの出力例

3.2. separate:セル間に隙間を残す

ファイル名: lesson22-6.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>🔓 border-collapse: separate</title>
  <style>
    table {
      border-collapse: separate; /* 隙間を残す */
      border-spacing: 4px;       /* 後述 */
    }
    th, td {
      border: 2px solid #336699;
      padding: 6px 10px;
    }
  </style>
</head>
<body>
  <h1>🔓 枠線分離(separate)</h1>
  <table>
    <tr><th>A</th><th>B</th></tr>
    <tr><td>1</td><td>2</td></tr>
  </table>
</body>
</html>

ブラウザの出力例

4.セル間隔の微調整(border-spacing

border-collapse: separate; のときのみ有効に、水平・垂直の隙間を指定できます。

4.1. border-spacing の使い方

ファイル名: lesson22-7.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>↔️ border-spacing</title>
  <style>
    table {
      border-collapse: separate;
      border-spacing: 12px 6px; /* 横12px、縦6px */
    }
    th, td {
      border: 1px solid #444;
      padding: 6px 12px;
    }
  </style>
</head>
<body>
  <h1>↔️ セル間隔の指定</h1>
  <table>
    <tr><th>X</th><th>Y</th><th>Z</th></tr>
    <tr><td>10</td><td>20</td><td>30</td></tr>
  </table>
</body>
</html>
記述例意味
border-spacing: N;水平・垂直ともに N px
border-spacing: H V;水平 H px、垂直 V px

ブラウザの出力例

まとめ

  • セルの書式
    th, tdborder/width/height/padding/text-align/vertical-align を指定して、可読性を高める
  • キャプション
    <caption> + caption-side で上下・揃えを自在に配置
  • 枠線の共有
    border-collapse: collapse でセルの境界線をまとめてスッキリ表示
  • セル間隔
    border-spacingseparate 時の余白を調整

 これらを使いこなせば、機能的かつ見た目の美しい表を簡単に作成できます。ぜひ実際に手を動かして試してみてください!