css テーブル 枠線

CSS 表格の枠線設定

この記事では、CSS を使用して表の枠線を設定する方法について詳しく説明します。表にさまざまなスタイルの枠線を設定したり、枠線の太さ、色、およびセル枠線の結合を制御したりするテクニックを紹介します。

1. 表に枠線を設定する

内容:

border プロパティを使用して、表、セル、および見出しに枠線のスタイル、太さ、および色を設定します。border プロパティは、border-widthborder-style、および border-color を同時に設定できる省略形です。

例:

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Table Border Example</title>
    <style>
        table {
            border: 2px solid black;
            border-collapse: collapse;
        }
        th, td {
            border: 1px solid black;
            padding: 8px;
        }
    </style>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>見出し1</th>
                <th>見出し2</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>データ1</td>
                <td>データ2</td>
            </tr>
        </tbody>
    </table>
</body>
</html>

2. 枠線の太さ、スタイル、および色を制御する

内容:

border-widthborder-style、および border-color プロパティを使用して、枠線の太さ、スタイル、および色をそれぞれ制御します。border-style プロパティで設定できるスタイルには、soliddotteddasheddoublegrooveridgeinset、および outset があります。

例:

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Border Style Example</title>
    <style>
        table {
            border: 3px dashed red;
            border-collapse: collapse;
        }
        th, td {
            border: 2px dotted blue;
            padding: 10px;
        }
    </style>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>見出し1</th>
                <th>見出し2</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>データ1</td>
                <td>データ2</td>
            </tr>
        </tbody>
    </table>
</body>
</html>

3. 表の異なる辺に異なるスタイルを設定する

内容:

border-topborder-rightborder-bottom、および border-left プロパティを使用して、表の異なる辺に異なる枠線のスタイルを設定します。これらのプロパティは、border-top: 1px solid red; などの省略形もサポートしています。

例:

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Different Border Example</title>
    <style>
        table {
            border-top: 3px solid green;
            border-right: 3px dashed orange;
            border-bottom: 3px dotted purple;
            border-left: 3px double gray;
            border-collapse: collapse;
        }
        th, td {
            border: 1px solid black;
            padding: 8px;
        }
    </style>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>見出し1</th>
                <th>見出し2</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>データ1</td>
                <td>データ2</td>
            </tr>
        </tbody>
    </table>
</body>
</html>

4. 隣接するセルの枠線を結合する

内容:

border-collapse プロパティを使用して、表の枠線を単一の枠線に結合します。border-collapse プロパティには、collapse(枠線を結合する)と separate(枠線を分離する、デフォルト値)の 2 つの値があります。

例:

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Border Collapse Example</title>
    <style>
        table {
            border: 2px solid black;
            border-collapse: collapse;
        }
        th, td {
            border: 1px solid black;
            padding: 8px;
        }
    </style>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>見出し1</th>
                <th>見出し2</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>データ1</td>
                <td>データ2</td>
            </tr>
        </tbody>
    </table>
</body>
</html>

5. セル間隔を設定する

内容:

border-spacing プロパティを使用して、隣接するセル枠線間の距離を設定します。このプロパティは、border-collapse プロパティが separate に設定されている場合にのみ有効です。

例:

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Border Spacing Example</title>
    <style>
        table {
            border: 2px solid black;
            border-spacing: 10px;
            border-collapse: separate;
        }
        th, td {
            border: 1px solid black;
            padding: 8px;
        }
    </style>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>見出し1</th>
                <th>見出し2</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>データ1</td>
                <td>データ2</td>
            </tr>
        </tbody>
    </table>
</body>
</html>

 

よくある質問

Q1: border-collapse: collapse; を設定しても、セルの間に隙間ができてしまいます。

A1: セル間に隙間ができる場合は、セル自身にパディングが設定されている可能性があります。td { padding: 0; } のように、セルにパディングを設定しないようにしてください。

Q2: 特定のセルの枠線だけスタイルを変更するにはどうすればよいですか?

A2: 特定のセルを選択するために、クラスや ID を使用します。例えば、<td class="special"> のようにクラスを設定し、CSS で .special { border: 2px dashed red; } のように指定します。

Q3: border-style で設定できるスタイルには、他にどのようなものがありますか?

A3: soliddotteddasheddoublegrooveridgeinsetoutset の他に、hiddennone も設定可能です。 hidden は枠線を非表示にしますが、border-collapsecollapse の場合は隣接する枠線に影響を与えます。none は枠線を完全に削除します。

その他の参考記事:CSSテーブル