CSSのcaption-sideで表のキャプション位置を指定する方法をわかりやすく解説

スポンサーリンク

caption-sideプロパティは、表のキャプション(タイトル)がテーブルのどの位置に表示されるかを指定するために使用します。通常は上部や下部にキャプションを配置することができます。

スポンサーリンク

caption-sideプロパティの値とその効果

  • top: キャプションをテーブルの上部に表示します(デフォルト)。
  • bottom: キャプションをテーブルの下部に表示します。
  • left, right: キャプションをテーブルの左側や右側に表示しますが、ほとんどのブラウザはこれらの値をサポートしていません。

注意点と関連情報

caption-sideプロパティは、テーブル要素にのみ適用されます。また、デフォルトではtop(上部)にキャプションが表示されます。キャプションを下部に配置する際には、bottomを指定しますが、leftrightはほとんどのブラウザで正しく表示されないため、注意が必要です。

caption-sideプロパティが効かない時の原因と対策

tableにキャプションがない

caption-sideは、テーブルのキャプションに適用されるプロパティです。テーブルにキャプションがない場合、このプロパティは機能しません。
対策: テーブルにキャプションを追加して、そのキャプションにcaption-sideを適用するようにしましょう。

適用対象が誤っている

caption-sideは、テーブルのキャプションにしか適用できません。テーブル以外の要素に使用しても効果はありません。
対策: caption-sideを正しくテーブルのキャプションに適用しているか確認しましょう。他の要素には適用できません。

共通するCSSコード

.css-sample-container {
        width: 100%;
        max-width: 600px;
        padding: 20px;
        margin: 20px auto;
        border: 1px solid #ccc;
        background-color: #f9f9f9;
    }
    table {
        width: 100%;
        border-collapse: collapse;
    }
    th, td {
        border: 1px solid #333;
        padding: 10px;
        text-align: center;
    }
    caption {
        font-weight: bold;
        background-color: #4CAF50;
        color: white;
        padding: 10px;
    }
    

caption-side: top

caption-side: topは、キャプションをテーブルの上部に表示します。これはデフォルトの動作であり、キャプションがテーブルの上部に位置します。

HTMLコード

<div class="css-sample-container">
    <table class="css-sample-caption-side-top">
        <caption>テーブルのタイトル(上部)</caption>
        <tr><th>ヘッダー1</th><th>ヘッダー2</th></tr>
        <tr><td>データ1</td><td>データ2</td></tr>
    </table>
    </div>

CSSコード

.css-sample-caption-side-top caption {
    caption-side: top;
}

表示結果

テーブルのタイトル(上部)
ヘッダー1 ヘッダー2
データ1 データ2

caption-side: bottom

caption-side: bottomは、キャプションをテーブルの下部に表示します。この設定を使用すると、キャプションがテーブルの下に表示されます。

HTMLコード

<div class="css-sample-container">
    <table class="css-sample-caption-side-bottom">
        <caption>テーブルのタイトル(下部)</caption>
        <tr><th>ヘッダー1</th><th>ヘッダー2</th></tr>
        <tr><td>データ1</td><td>データ2</td></tr>
    </table>
    </div>

CSSコード

.css-sample-caption-side-bottom caption {
    caption-side: bottom;
}

表示結果

テーブルのタイトル(下部)
ヘッダー1 ヘッダー2
データ1 データ2

まとめ

caption-sideプロパティは、表のキャプションをどの位置に表示するかを指定するために使用されます。デフォルトではキャプションは上部に表示されますが、bottomを指定することで下部に配置することが可能です。leftrightの値もありますが、これらはほとんどのブラウザでサポートされていないため、実際には使用されることが少ないです。