border-collapse・border-spacingが効かない原因と解決方法
「border-spacingを指定しているのに隙間ができない!?」
「border-collapse:collapseを指定しているのに線が重ならない!?」
そんなborder-collapse・border-spacingが効かない原因と解決方法について解説します。
目次
border-collapseとは
「border-collapse」はtable内のセルの境界を分けるか共有するか指定するCSSです。
border-collapse:separateだと分かれます。こちらが初期値です。
border-collapse:collapseだと共有します。
border-collapse:separate
セル | セル |
セル | セル |
<style>
.example{
border-collapse:separate;
}
.example,.example td{
border: 1px solid #333;
}
</style>
<table class="example">
<tr>
<td>セル</td><td>セル</td>
</tr>
<tr>
<td>セル</td><td>セル</td>
</tr>
</table>
border-collapse:collapse
セル | セル |
セル | セル |
<style>
.example2{
border-collapse:collapse;
}
.example2,.example2 td{
border: 1px solid #333;
}
</style>
<table class="example2">
<tr>
<td>セル</td><td>セル</td>
</tr>
<tr>
<td>セル</td><td>セル</td>
</tr>
</table>
CSSやhtmlの基本をしっかり理解すると、この記事の内容もより理解できるようになりますよ。
↓CSSやhtmlを楽しく学べるようにマンガを描きましたのでゼヒご覧ください↓
↑「副業してもう少し稼ぎたい!」というかたのために副業の方法も解説しています。
border-collapseが効かない原因
tableに指定されていない
境界の線を共有するために「border-collapse: collapse」をdivやliに使っていませんか?
「border-collapse」はtableにしか使えません。
あとtdに指定しても効きません。
【解決方法】tableに指定
border-collapseはtableに指定しましょう。
どうしてもdivやliに指定する場合はdisplay:tableやtable-cellなどを使い、しっかりtableの形にしましょう。
線の重なりが気になるなら下記の方法を参考にしてみてください。
border-spacingとは
「border-spacing」はセル間の隙間の距離を指定するCSSです。
セル | セル |
セル | セル |
<style>
.example3{
border-spacing: 15px;
}
.example3,.example3 td{
border: 1px solid #333;
}
</style>
<table class="example3">
<tr>
<td>セル</td><td>セル</td>
</tr>
<tr>
<td>セル</td><td>セル</td>
</tr>
</table>
border-spacingが効かない原因
border-collapse:collapseが指定されている
「border-collapse:collapse」はセルの境界線を共有させるCSSです。これが指定されているとセル間の隙間がないため「border-spacing」を指定しようがありません。
border-spacingとborder-collapse: collapseを同時に指定した例
セル | セル |
セル | セル |
<style>
.example4{
border-spacing: 15px;
border-collapse: collapse;
}
.example4,.example4 td{
border: 1px solid #333;
}
</style>
<table class="example4">
<tr>
<td>セル</td><td>セル</td>
</tr>
<tr>
<td>セル</td><td>セル</td>
</tr>
</table>
【解決方法】collapseの指定を消すかseparateで上書き
「border-collapse: separate」はセル同士を分けるCSSです。
separateは初期値ですので、border-collapse: collapseの指定を消すか、border-collapse: separateで上書きしましょう。
tableに指定されていない
「border-spacing」はtableに指定するCSSです。tdに指定しても効きません。
【解決方法】tableに指定
border-spacingはtableに指定しましょう。
どうしてもdivやliに指定する場合はdisplay:tableやtable-cellなどを使い、しっかりtableの形にしましょう。
まとめ
border-spacingが効かない原因
border-collapse:collapseが指定されていると効きません。
collapseの指定を消すかseparateで上書きしましょう。
border-spacing・border-collapseが効かない原因
divやtdには効きません。tableに指定しましょう。
以上、border-collapse・border-spacingが効かない原因と解決方法でした。
「この記事の内容がよくわからなかった…」「なんかうまくいかなかった…」というかたは下記記事↓でhtmlとCSSの基本を学びましょう。
わからないまま突き進むより基本を学ぶのが結局近道です。