テーブルの罫線を設定するための3つのCSSプロパティを解説します。
CSSプロパティ | 設定内容 | デフォルト値 | その他の設定値 |
---|---|---|---|
border-collapse | <table> 要素の罫線の間隔の有無。 | collapse | separate |
border-spacing | <table> 要素の罫線の間隔の幅。※ border-collapse: separate; の場合のみ有効。 | ||
empty-cells | <table> 要素の空セルに対する罫線の表示/非表示。※ border-collapse: separate; の場合のみ有効。 | show | hide |
border-collapse
| 間隔の有無
<table>
要素を準備します。
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
実行結果初期状態
🍎 | 🍋 | |
🍉 | 🍈 |
border-collapse
で罫線の間隔の有無を設定します。
設定値 | 罫線の間の間隔 | デフォルト |
---|---|---|
separate | 間隔あり | |
collapse | 間隔なし |
<table>
要素に対してborder-collapse
をseparate
に設定すると、罫線の間隔(青線と赤線の間)が開きます。 collapse
に変更すると間隔が無くなります。(デフォルト値)
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: separate; }
実行結果
separate
間隔あり🍎 | 🍋 | |
🍉 | 🍈 |
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: collapse; }
実行結果
collapse
間隔なし🍎 | 🍋 | |
🍉 | 🍈 |
border-spacing
| 間隔の幅
border-spacing
はborder-collapse
がseparate
の場合のみ有効です。
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: separate; }
実行結果初期状態
🍎 | 🍋 | |
🍉 | 🍈 |
border-spacing
で<table>
要素の罫線の間隔の幅を指定します。 以下はborder-spacing
が30px
、15px
、0
の例です。
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: separate; border-spacing: 30px; }
実行結果
30px
🍎 | 🍋 | |
🍉 | 🍈 |
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: separate; border-spacing: 15px; }
実行結果
15px
🍎 | 🍋 | |
🍉 | 🍈 |
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: separate; border-spacing: 0; }
実行結果
0
🍎 | 🍋 | |
🍉 | 🍈 |
border-spacing
が大きいほど間隔は広くなります。
2つの設定値
2つの設定値を指定して、「上下」の幅と「左右」の幅を個別に指定することもできます。
設定値の数 | 1つ目 | 2つ目 |
---|---|---|
1 | 上下左右 | - |
2 | 左右 | 上下 |
border-spacing
に対して、40px 10px
と10px 40px
と設定した例です。
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: separate; border-spacing: 40px 10px; }
実行結果40px 10px
🍎 | 🍋 | |
🍉 | 🍈 |
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: separate; border-spacing: 10px 40px; }
実行結果10px 40px
🍎 | 🍋 | |
🍉 | 🍈 |
empty-cells
| 空セルの非表示
empty-cells
はborder-collapse
がseparate
の場合のみ有効です。
設定値 | 空セルの罫線 | デフォルト |
---|---|---|
hide | 非表示 | |
show | 表示 |
border-collapse
で<table>
要素の空セルを表示するか否かを指定します。 border-collapse
をseparate
に指定します。罫線の間隔が開きます。
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: separate; }
実行結果初期状態
🍎 | 🍋 | |
🍉 | 🍈 |
empty-cells
をhide
にすると空セルの罫線は非表示になります。 show
に変更すると表示されます。(デフォルト値)
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: separate; empty-cells: hide; }
実行結果hide
🍎 | 🍋 | |
🍉 | 🍈 |
HTML
<table> <tr> <td>🍎</td> <td>🍋</td> <td><!-- 空セル --></td> </tr> <tr> <td>🍉</td> <td><!-- 空セル --></td> <td>🍈</td> </tr> </table>
CSS
CSS
table { border-collapse: separate; empty-cells: show; }
実行結果show
🍎 | 🍋 | |
🍉 | 🍈 |