TableのCellSpacingをスタイルシートで変更する - CSSでテーブルの枠線を1重にする - CSS

概要

HTMLタグではTableのセル間に余白を開けない場合は、tableタグの属性値として cellspacing="0" を指定すると余白が開かなくなります。同様の処理をCSSで表現する場合のコードを紹介します。

セル間に余白を開けない場合

書式

border-collapse:collapse; 
Tableのセル間に余白を開けない場合は、border-collapse:collapse; を使います。

コード

下記のHTMLファイルを作成します。
<table style="border-collapse:collapse; border-spacing:0px; border:1px solid #FF4040">
<tr>
  <td style="background-color:#80FF80;margin:0px;padding:0px;border:1px solid #4040FF;">ABC</td>
  <td style="background-color:#80FF80;margin:0px;padding:0px;border:1px solid #4040FF;">ABC</td>
  <td style="background-color:#80FF80;margin:0px;padding:0px;border:1px solid #4040FF;">ABC</td>
</tr>
<tr>
  <td style="background-color:#80FF80;margin:0px;padding:0px;border:1px solid #4040FF;">ABC</td>
  <td style="background-color:#80FF80;margin:0px;padding:0px;border:1px solid #4040FF;">ABC</td>
  <td style="background-color:#80FF80;margin:0px;padding:0px;border:1px solid #4040FF;">ABC</td>
</tr>
</table>

表示結果

上記のHTMLファイルをWebブラウザで表示します。下図のテーブルの画面が表示されます。
ABCABCABC
ABCABCABC

セル間に余白を開ける場合

書式

Tableのセル間に余白を開ける場合は、border-collapse:separate; を使います。セル間の間隔は border-spacing で指定します。

コード

下記のHTMLファイルを作成します。
<table style="border-collapse:separate; border-spacing:8px; border:1px">
<tr>
 <td style="background-color:#80FF80;">ABC</td>
 <td style="background-color:#80FF80;">ABC</td>
 <td style="background-color:#80FF80;">ABC</td>
</tr>
<tr>
 <td style="background-color:#80FF80;">ABC</td>
 <td style="background-color:#80FF80;">ABC</td>
 <td style="background-color:#80FF80;">ABC</td>
</tr>
</table>

表示結果

上記のHTMLファイルをWebブラウザで表示します。下図のテーブルの画面が表示されます。
ABC ABC ABC
ABC ABC ABC

セル間に余白を開け、枠線を表示する場合

コード

下記のHTMLファイルを作成します。
<table style="border-collapse:separate; border-spacing:8px; border:1px">
<tr>
 <td style="background-color:#80FF80;border:1px solid #4040FF;">ABC</td>
 <td style="background-color:#80FF80;border:1px solid #4040FF;">ABC</td>
 <td style="background-color:#80FF80;border:1px solid #4040FF;">ABC</td>
</tr>
<tr>
 <td style="background-color:#80FF80;border:1px solid #4040FF;">ABC</td>
 <td style="background-color:#80FF80;border:1px solid #4040FF;">ABC</td>
 <td style="background-color:#80FF80;border:1px solid #4040FF;">ABC</td>
</tr>
</table>

表示結果

上記のHTMLファイルをWebブラウザで表示します。下図のテーブルの画面が表示されます。
ABC ABC ABC
ABC ABC ABC

実装例 (罫線を一重で1ピクセル幅で表示する)

コード

罫線を一重で1ピクセル幅で表示するコードです。
CssTableCollapse.css
.MyTable{
    border-collapse:collapse;
}

.MyTable tr td {
    border:1px solid #0094ff;
}
CssTableCollapse.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <link rel="stylesheet" href="CssTableCollapse.css" type="text/css" />
</head>
<body>
  <table class="MyTable">
    <tr>
      <td>ペンギンクッキー</td>
      <td>\380</td>
      <td>250g</td>
    </tr>
    <tr>
      <td>しろくまキャンディー</td>
      <td>\150</td>
      <td>80g</td>
    </tr>
    <tr>
      <td>くじらポテトチップ</td>
      <td>\210</td>
      <td>180g</td>
    </tr>
  </table>
</body>
</html>

解説

HTMLで記述したテーブルを MyTable クラスに指定しています。MyTable クラスのスタイルを定義するCSSでは、MyTableクラスのborder-collapse プロパティにに Collapse を設定しています。この設定によりセル間に余白が開かない設定になります。
また、下位要素セレクタを利用し MyTable クラスの子要素の tr 要素の子要素の td タグに対してスタイルを設定します。border:1px solid #0094ff;のプロパティを設定することでセルの境界線を表示し一重の罫線で表示します。

表示結果

上記のHTMLファイルをWebブラウザで表示します。下図のページが表示されます。テーブルが表示され、1ピクセルの罫線が一重で表示されていることが確認できます。

著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
最終更新日: 2023-02-16
作成日: 2009-10-02
iPentec all rights reserverd.