【CSS/html】tableを点線にする方法
tableの線は普段実線にしますが、点線にする必要があることもあるでしょう。
tableを点線にする方法を解説します。
全部点線
実線は「border-style:solid」ですが、点線にするには「border-style:dashed」を指定します。
見出しセル | 見出しセル | 見出しセル |
---|---|---|
データセル | データセル | データセル |
データセル | データセル | データセル |
<style>
table{
border:1px dashed #999;
border-collapse: collapse;
}
td,th{
border:1px dashed #999;
}
</style>
<table border>
<tr>
<th>見出しセル</th>
<th>見出しセル</th>
<th>見出しセル</th>
</tr>
<tr>
<td>データセル</td>
<td>データセル</td>
<td>データセル</td>
</tr>
<tr>
<td>データセル</td>
<td>データセル</td>
<td>データセル</td>
</tr>
</table>
「border-style:dotted」にするともっと細かい点線になりますし、「border-style:double」にすると二重線にもできます。
線の引き方についてはこちら↓
CSSやhtmlの基本をしっかり理解すると、この記事の内容もより理解できるようになりますよ。
↓CSSやhtmlを楽しく学べるようにマンガを描きましたのでゼヒご覧ください↓
↑「副業してもう少し稼ぎたい!」というかたのために副業の方法も解説しています。
内側だけ点線
「border-collapse: collapse」はtableとtd,thの線を共有にするCSSです。
この状態でtableを実線(solid)、td,thを点線(dashed)にすると内側だけ点線になります。
見出しセル | 見出しセル | 見出しセル |
---|---|---|
データセル | データセル | データセル |
データセル | データセル | データセル |
<style>
table{
border:1px solid #999;
border-collapse: collapse;
}
td,th{
border:1px dashed #999;
}
</style>
<table border>
<tr>
<th>見出しセル</th>
<th>見出しセル</th>
<th>見出しセル</th>
</tr>
<tr>
<td>データセル</td>
<td>データセル</td>
<td>データセル</td>
</tr>
<tr>
<td>データセル</td>
<td>データセル</td>
<td>データセル</td>
</tr>
</table>
内側の横線だけ点線
上記の「内側だけ点線」の方法をベースにします。td,thの線をまず実線(solid)にし、上と下の線を点線(dashed)にします。
見出しセル | 見出しセル | 見出しセル |
---|---|---|
データセル | データセル | データセル |
データセル | データセル | データセル |
<style>
table{
border:1px solid #999;
border-collapse: collapse;
}
td,th{
border:1px solid #999;
/*コレ*/border-bottom: 1px dashed #999;
/*コレ*/border-top: 1px dashed #999;
}
</style>
<table border>
<tr>
<th>見出しセル</th>
<th>見出しセル</th>
<th>見出しセル</th>
</tr>
<tr>
<td>データセル</td>
<td>データセル</td>
<td>データセル</td>
</tr>
<tr>
<td>データセル</td>
<td>データセル</td>
<td>データセル</td>
</tr>
</table>
内側の縦線だけ点線
同じく「内側だけ点線」の方法をベースにします。今度はtd,thの左と右の線を点線(dashed)にします。
見出しセル | 見出しセル | 見出しセル |
---|---|---|
データセル | データセル | データセル |
データセル | データセル | データセル |
<style>
table{
border:1px solid #999;
border-collapse: collapse;
}
td,th{
border:1px solid #999;
/*コレ*/border-left: 1px dashed #999;
/*コレ*/border-right: 1px dashed #999;
}
</style>
<table border>
<tr>
<th>見出しセル</th>
<th>見出しセル</th>
<th>見出しセル</th>
</tr>
<tr>
<td>データセル</td>
<td>データセル</td>
<td>データセル</td>
</tr>
<tr>
<td>データセル</td>
<td>データセル</td>
<td>データセル</td>
</tr>
</table>
外側だけ点線
見出しセル | 見出しセル | 見出しセル |
---|---|---|
データセル | データセル | データセル |
データセル | データセル | データセル |
<style>
table{
border:1px dashed #999;
border-spacing: 0;
}
td,th{
border: none;
border-left: 1px solid #333;
border-top: 1px solid #333;
}
td:first-child,th:first-child{
border-left:none;
}
tr:first-child td,tr:first-child th{
border-top:none;
}
</style>
<table border>
<tr>
<th>見出しセル</th>
<th>見出しセル</th>
<th>見出しセル</th>
</tr>
<tr>
<td>データセル</td>
<td>データセル</td>
<td>データセル</td>
</tr>
<tr>
<td>データセル</td>
<td>データセル</td>
<td>データセル</td>
</tr>
</table>
先述した「内側だけ点線」の方法を逆にすれば外側だけ点線になりそうなものですが、これではうまくいきません。
下記「内側だけ線を引く方法」を応用して、外側だけ点線、内側だけ実線の状態を作ります。
任意の箇所を点線
見出しセル | 見出しセル | 見出しセル |
---|---|---|
データセル | データセル | データセル |
データセル | データセル | データセル |
<style>
table{
border: none;
border-spacing: 0;
margin: 10px;
}
td,th{
border: none;
border-left: 1px solid #333;
border-top: 1px solid #333;
}
td:last-child,th:last-child{
border-right: 1px solid #333;
}
tr:last-child td,tr:last-child th{
border-bottom: 1px solid #333;
}
.dashed-left{
border-left: 1px dashed #333 !important;
}
.dashed-top{
border-top: 1px dashed #333 !important;
}
.dashed-right{
border-right: 1px dashed #333 !important;
}
.dashed-bottom{
border-bottom: 1px dashed #333 !important;
}
</style>
<table border>
<tr>
<th class="dashed-top">見出しセル</th>
<th>見出しセル</th>
<th class="dashed-right">見出しセル</th>
</tr>
<tr>
<td>データセル</td>
<td class="dashed-left">データセル</td>
<td>データセル</td>
</tr>
<tr>
<td class="dashed-top dashed-left">データセル</td>
<td>データセル</td>
<td class="dashed-right dashed-bottom">データセル</td>
</tr>
</table>
任意の箇所を点線にするにはtableには線を引かず、すべてtd,thに引きます。
ただし、外側を点線にしない場合はこの限りではありません。
tableの線を消し、td,thの左と上に線を引きます。
これだけでは表の右と下の線がないので最終列の右線、最終行の下線をひきます。
本題の「任意の点線」にはclassを指定します。
基本は左か上に線を引きます。
ただし。表の右、下の線を点線にしたいときだけは右、下に点線を引きます。
「この記事の内容がよくわからなかった…」「なんかうまくいかなかった…」というかたは下記記事↓でhtmlとCSSの基本を学びましょう。
わからないまま突き進むより基本を学ぶのが結局近道です。