CSSでテーブルに境界線を追加する方法
CSSのborderプロパティは、要素の周囲に境界線を定義するために使用します。テーブルに境界線を設定すると、セル同士の区切りが明確になり、データが格段に読みやすくなります。境界線の太さ・スタイル・色をまとめて指定できるのが特徴です。
構文
セレクタ {
border: /*値*/
}
borderプロパティでは、「太さ スタイル 色」の順で値を半角スペース区切りで指定します。例えば「3px double green」は、3pxの二重線を緑色で描くという意味になります。
例1:テーブル全体とセルに個別の境界線を設定する
次の例では、table要素とtd要素に対して、それぞれ異なる境界線スタイルを適用しています。
<!DOCTYPE html>
<html>
<head>
<style>
table {
margin: 1em;
border: 3px double green;
border-right-style: dashed;
border-left-width: 17px;
border-bottom-color: orange;
}
td {
font-size: 24px;
border-right-style: dotted;
border-width: 3px;
border-right-color: red;
}
</style>
</head>
<body>
<table>
<tr>
<td>demo</td>
<td>text</td>
</tr>
<tr>
<td>goes</td>
<td>here</td>
</tr>
</table>
</body>
</html>
実行結果
上記のコードを実行すると、次のような出力が得られます。

このコードでは、以下のように各辺ごとに細かい指定を行っています。
- border: 3px double green; … テーブル全体に3pxの緑色の二重線を引く
- border-right-style: dashed; … 右側の境界線だけ破線に変更
- border-left-width: 17px; … 左側の境界線の太さを17pxに変更
- border-bottom-color: orange; … 下側の境界線の色をオレンジに変更
- td の border-right-style: dotted; … 各セルの右側に赤い点線を表示
このように、borderプロパティで一括指定した後でも、border-right-style や border-left-width のように各辺・各項目を個別に上書きできます。
例2:キャプション付きのランキング表に境界線を設定する
次の例では、caption要素で表題を付けたランキング表に、破線と実線を使い分けた境界線を設定しています。さらに、colspan属性を持つセルには box-shadow で内側に影を付けて強調しています。
<!DOCTYPE html>
<html>
<head>
<style>
table {
margin: auto;
caption-side: bottom;
border: 2px dashed black;
}
td {
border: 2px solid midnightblue;
text-align: center;
}
td[colspan] {
box-shadow: inset 0 0 10px lightblue;
text-align: center;
}
caption {
font-size: 16px;
font-weight: bold;
}
</style>
</head>
<body>
<h2>Ranking</h2>
<table>
<caption>Men's ODI Player Ranking</caption>
<tr>
<th>Player</th>
<th>Rank</th>
</tr>
<tr>
<td>Virat Kohli</td>
<td>1</td>
</tr>
<tr>
<td>Rohit Sharma</td>
<td>2</td>
</tr>
<tr>
<td>Babar Azam</td>
<td>3</td>
</tr>
<tr>
<td>Ross Taylor</td>
<td>4</td>
</tr>
<tr>
<td colspan="2">Sept2019</td>
</tr>
</table>
</body>
</html>
実行結果
上記のコードを実行すると、次のような出力が得られます。

この例のポイントは以下の通りです。
- caption-side: bottom; … 表題(キャプション)をテーブルの下部に配置
- table に破線(dashed)、td に実線(solid) … 外枠とセルでスタイルを使い分け
- td[colspan] … 属性セレクタにより、colspanを持つセルだけ内側に水色の影を追加
まとめ
CSSのborderプロパティを使えば、テーブル全体にもセル単位でも柔軟に境界線を設定できます。一括指定だけでなく、各辺ごとの細かい制御も可能なので、破線・点線・二重線などのスタイルを組み合わせて、目的に合った見やすいテーブルデザインを作りましょう。
-
CSSでレスポンシブテーブルを作成する方法をわかりやすく解説
CSSでレスポンシブ対応のテーブルを作成するには、テーブル全体を<div>要素で囲み、その親要素に overflow-x: auto; を指定するのが最もシンプルで確実な方法です。これにより、画面幅が狭い環境(スマートフォンやタブレットなど)でも、テーブルが横にはみ出すことなく、水平スクロールバーが自動的に表示されるようになります。レスポンシブテーブルのポイントレスポンシブテーブルを実現するうえで重要なCSSプロパティは以下のとおりです。overflow-x: auto; … コンテナからはみ出した内容に対して、必要な場合のみ横スクロールバーを表示します。width: 100%;
-
CSSのposition: stickyを使ってスクロール時にヘッダーを固定するHTMLテーブルの作り方
HTMLテーブルでは、CSSのposition: stickyとtop: 0を組み合わせることで、縦方向にスクロールしてもヘッダー行(th要素)が常に画面上部に固定表示されるテーブルを簡単に実装できます。JavaScriptを使わずCSSだけで完結するため、コードもシンプルで保守性が高いのが特徴です。仕組みのポイント固定ヘッダーを実現するには、以下の2点が重要です。テーブル全体を包むコンテナ(div要素など)にoverflow-y: scrollを指定し、スクロール可能な領域を作る。ヘッダーセル(th要素)にposition: stickyとtop: 0を指定し、スクロール位置に追従して上部に