テーブルの罫線を設定するための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
| 🍎 | 🍋 | |
| 🍉 | 🍈 |