HTML

Tables

HTML

表を作成する

基本的なテーブル

シンプルな表の作成

基本のテーブル構造

basic-table.html html
<!-- シンプルなテーブル -->
<table>
    <tr>
        <th>名前</th>
        <th>年齢</th>
        <th>職業</th>
    </tr>
    <tr>
        <td>田中太郎</td>
        <td>25</td>
        <td>エンジニア</td>
    </tr>
    <tr>
        <td>佐藤花子</td>
        <td>30</td>
        <td>デザイナー</td>
    </tr>
    <tr>
        <td>鈴木一郎</td>
        <td>28</td>
        <td>マーケター</td>
    </tr>
</table>

ヘッダー、ボディ、フッター

table-sections.html html
<table>
    <thead>
        <tr>
            <th>商品名</th>
            <th>数量</th>
            <th>単価</th>
            <th>小計</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>ノートPC</td>
            <td>2</td>
            <td>¥100,000</td>
            <td>¥200,000</td>
        </tr>
        <tr>
            <td>マウス</td>
            <td>5</td>
            <td>¥2,000</td>
            <td>¥10,000</td>
        </tr>
        <tr>
            <td>キーボード</td>
            <td>3</td>
            <td>¥5,000</td>
            <td>¥15,000</td>
        </tr>
    </tbody>
    <tfoot>
        <tr>
            <td colspan="3">合計</td>
            <td><strong>¥225,000</strong></td>
        </tr>
    </tfoot>
</table>

テーブルのスタイリング

見やすい表のデザイン

スタイル付きテーブル

styled-table.html html
<table class="data-table">
    <thead>
        <tr>
            <th>ID</th>
            <th>ユーザー名</th>
            <th>メール</th>
            <th>ステータス</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>001</td>
            <td>田中太郎</td>
            <td>tanaka@example.com</td>
            <td><span class="status active">アクティブ</span></td>
        </tr>
        <tr>
            <td>002</td>
            <td>佐藤花子</td>
            <td>sato@example.com</td>
            <td><span class="status inactive">非アクティブ</span></td>
        </tr>
        <tr>
            <td>003</td>
            <td>鈴木一郎</td>
            <td>suzuki@example.com</td>
            <td><span class="status active">アクティブ</span></td>
        </tr>
    </tbody>
</table>

ストライプテーブル

striped-table.html html
<table class="striped-table">
    <thead>
        <tr>
            <th>日付</th>
            <th>カテゴリ</th>
            <th>説明</th>
            <th>金額</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>2025-01-01</td>
            <td>食費</td>
            <td>昼食</td>
            <td>¥1,200</td>
        </tr>
        <tr>
            <td>2025-01-02</td>
            <td>交通費</td>
            <td>電車</td>
            <td>¥500</td>
        </tr>
        <tr>
            <td>2025-01-03</td>
            <td>娯楽</td>
            <td>映画</td>
            <td>¥1,800</td>
        </tr>
        <tr>
            <td>2025-01-04</td>
            <td>食費</td>
            <td>夕食</td>
            <td>¥2,500</td>
        </tr>
    </tbody>
</table>

高度なテーブル

セルの結合とグループ化

セルの結合

cell-spanning.html html
<!-- 列の結合(colspan) -->
<table border="1">
    <tr>
        <th colspan="3">Q1 売上報告</th>
    </tr>
    <tr>
        <th>1月</th>
        <th>2月</th>
        <th>3月</th>
    </tr>
    <tr>
        <td>¥1,000,000</td>
        <td>¥1,200,000</td>
        <td>¥1,500,000</td>
    </tr>
</table>

<!-- 行の結合(rowspan) -->
<table border="1">
    <tr>
        <th rowspan="2">カテゴリ</th>
        <th colspan="2">2025年</th>
    </tr>
    <tr>
        <th>Q1</th>
        <th>Q2</th>
    </tr>
    <tr>
        <td>売上</td>
        <td>¥5,000,000</td>
        <td>¥6,000,000</td>
    </tr>
    <tr>
        <td>利益</td>
        <td>¥1,000,000</td>
        <td>¥1,500,000</td>
    </tr>
</table>

<!-- 複雑な結合 -->
<table border="1">
    <tr>
        <th rowspan="2">製品</th>
        <th colspan="2">販売数</th>
        <th rowspan="2">合計</th>
    </tr>
    <tr>
        <th>店舗A</th>
        <th>店舗B</th>
    </tr>
    <tr>
        <td>製品X</td>
        <td>100</td>
        <td>150</td>
        <td>250</td>
    </tr>
    <tr>
        <td>製品Y</td>
        <td>80</td>
        <td>120</td>
        <td>200</td>
    </tr>
</table>

列グループ

column-groups.html html
<table>
    <colgroup>
        <col style="background-color: #f0f0f0;">
        <col span="2" style="background-color: #e0f0ff;">
        <col style="background-color: #ffe0e0;">
    </colgroup>
    <thead>
        <tr>
            <th>名前</th>
            <th>国語</th>
            <th>数学</th>
            <th>合計</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>田中</td>
            <td>85</td>
            <td>90</td>
            <td>175</td>
        </tr>
        <tr>
            <td>佐藤</td>
            <td>78</td>
            <td>88</td>
            <td>166</td>
        </tr>
        <tr>
            <td>鈴木</td>
            <td>92</td>
            <td>85</td>
            <td>177</td>
        </tr>
    </tbody>
</table>

レスポンシブテーブル

モバイル対応の表

スクロール可能なテーブル

scrollable-table.html html
<div class="table-wrapper">
    <table class="responsive-table">
        <thead>
            <tr>
                <th>ID</th>
                <th>名前</th>
                <th>メール</th>
                <th>電話</th>
                <th>住所</th>
                <th>登録日</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>001</td>
                <td>田中太郎</td>
                <td>tanaka@example.com</td>
                <td>090-1234-5678</td>
                <td>東京都渋谷区</td>
                <td>2025-01-01</td>
            </tr>
            <tr>
                <td>002</td>
                <td>佐藤花子</td>
                <td>sato@example.com</td>
                <td>080-2345-6789</td>
                <td>大阪府大阪市</td>
                <td>2025-01-02</td>
            </tr>
        </tbody>
    </table>
</div>

カード型レイアウト(モバイル)

card-table.html html
<table class="card-table">
    <thead>
        <tr>
            <th>製品</th>
            <th>価格</th>
            <th>在庫</th>
            <th>ステータス</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td data-label="製品">ノートPC</td>
            <td data-label="価格">¥100,000</td>
            <td data-label="在庫">5</td>
            <td data-label="ステータス">在庫あり</td>
        </tr>
        <tr>
            <td data-label="製品">マウス</td>
            <td data-label="価格">¥2,000</td>
            <td data-label="在庫">20</td>
            <td data-label="ステータス">在庫あり</td>
        </tr>
    </tbody>
</table>