本ページはプロモーションが含まれています

スマホで崩れない!比較に使える「レスポンシブなテーブル(表)」CSSデザイン10選

公開日

ブログで商品のスペックや料金比較表を作ったとき、「スマホで見たら画面からはみ出して文字が読めない…!」と悩んだことはありませんか?

最近のWebサイトへのアクセスは7〜8割がスマートフォンです。表がスマホ対応できていないと、読者はすぐにページから離脱してしまいます。

この記事では、プラグインを使わずにHTMLとCSSのコピペだけで実装できる「スマホで崩れない!レスポンシブな表デザイン10選」をご紹介します。

💡 プロの裏技:あえて table タグを使わない!

WordPressのテーマ(CocoonやSWELLなど)には、最初から表(<table>)に対するCSSデザインが強力に設定されています。そのため、ネットで拾った表のコードをコピペしても、テーマのデザインと混ざって崩れてしまうことがよくあります。

そこで今回は、モダンなHTML5以降の仕様である「<dl>タグの中に<div>を入れる構造」を採用しました。これによりテーマのCSS干渉を完全に回避し、誰がコピペしても一発で綺麗に表示されるようになっています!

【基本のHTML】コピペするのはこれだけ!

デザインを変える前に、まずはベースとなるHTML構造を記事内に配置します。すべてのデザインはこの class="kz-dl-table" にクラスを追加するだけで切り替えられます。

<!-- 横スクロールさせるための枠 -->
<div class="kz-dl-wrap">
  <!-- ここにクラス名を追加してデザインを変えます -->
  <dl class="kz-dl-table">
    <!-- 1行目のグループ -->
    <div class="kz-dl-row">
      <dt>項目名1</dt>
      <dd>データA</dd>
      <dd>データB</dd>
    </div>
    <!-- 2行目のグループ -->
    <div class="kz-dl-row">
      <dt>項目名2</dt>
      <dd>データC</dd>
      <dd>データD</dd>
    </div>
  </dl>
</div>

パターンA:横スクロール対応テーブル 5選

列が多くてスマホ画面に収まらない表は、指でスワイプできる「横スクロール」にするのが基本です。

1. シンプルベーシック

プラン名
スタンダード
プレミアム
料金
1,000円
2,000円
/* 1. シンプルベーシック */
.kz-dl-01 { border-top: 2px solid #ccc; border-left: 2px solid #ccc; }
.kz-dl-01 dt, .kz-dl-01 dd { border-right: 2px solid #ccc; border-bottom: 2px solid #ccc; }

2. ストライプ(行が交互に色付け)

項目A
テキストデータ
項目B
テキストデータ
項目C
テキストデータ
/* 2. ストライプ */
.kz-dl-02 .kz-dl-row:nth-child(even) dd { background: #fdfdfd; }
.kz-dl-02 .kz-dl-row:nth-child(even) dt { background: #f0f0f0; }

3. ヘッダーカラー強調

プラン
無料版
有料版
サポート
コミュニティのみ
24時間チャット
/* 3. ヘッダーカラー(ご自身のサイトカラーに変更してください) */
.kz-dl-03 dt { background: #28a745; color: #fff; }

4. 左端見出し固定(超便利!)

横スクロールしても「左端の項目名」が固定されてついてくる、実務で大活躍のCSSです。
※パソコンでもスクロールを確認できるよう、少し横幅を広げたデモになっています。

機能
A社ツール
B社ツール
C社ツール
D社ツール
初期費用
無料
1万円
5万円
無料
/* 4. 左端見出し固定 */
.kz-dl-04 dt {
  position: sticky;
  left: 0;
  background: #f0f7ff;
  z-index: 1;
  border-right: 2px solid #007bff;
}

5. ホバーハイライト

マウスを乗せるとその行がフワッと光ります。

対象ユーザー
初心者向け
プロ向け
カスタマイズ性
制限あり
完全自由
/* 5. ホバーハイライト */
.kz-dl-05 .kz-dl-row:hover dd { background: #fff5e6; transition: 0.2s; }

パターンB:スマホで縦積みになるテーブル 5選

HTMLに kz-dl-stack を追加すると、PCでは横並びですが、スマホで見ると自動的に「縦並びのカード型」に変形します。
※デモはスマホサイズにウィンドウを縮めて確認してください。

6. シンプル縦積み

会社名
株式会社サンプル
所在地
岐阜県岐阜市〇〇
/* 6. シンプル縦積みベース */
.kz-dl-06 dt { background: #e9ecef; }

7. スペック表風(下線のみ)

サイズ
幅50cm × 高さ100cm
重量
約1.5kg
/* 7. スペック表風 */
.kz-dl-07 .kz-dl-row { border: none; border-bottom: 2px solid #ffdb58; border-radius: 0; }

8. ダーク見出し

対応OS
Windows / macOS
メモリ容量
16GB以上推奨
/* 8. ダーク見出し */
.kz-dl-08 dt { background: #333; color: #fff; }

9. 浮き出るボックス型

基本セット
本体+専用ケース付属
保証期間
購入日から1年間
/* 9. 浮き出るボックス型 */
.kz-dl-09 .kz-dl-row { box-shadow: 0 4px 6px rgba(0,0,0,0.1); border: none; }

10. カラフルストライプ

メリット1
初期費用が完全無料
メリット2
最短即日で開通可能
メリット3
高額キャッシュバックあり
/* 10. カラフルストライプ */
.kz-dl-10 .kz-dl-row:nth-child(even) dt { background: #ffe8e8; color: #d32f2f; }
.kz-dl-10 .kz-dl-row:nth-child(odd) dt { background: #e8f4ff; color: #0056b3; }

【必須】ベース用の共通CSS

以下のコードをWordPressの「追加CSS」に一度だけ貼り付けておいてください。

/* =========================================
   レスポンシブdlテーブル 共通ベースCSS
========================================= */
/* 横スクロール用枠 */
.kz-dl-wrap {
  width: 100%;
  overflow-x: auto;
  margin-bottom: 2em;
  -webkit-overflow-scrolling: touch;
}
/* ベーススタイル */
.kz-dl-table {
  display: flex;
  flex-direction: column;
  min-width: 500px;
  margin: 0; padding: 0;
  border-top: 1px solid #ddd;
  border-left: 1px solid #ddd;
  background: #fff;
}
.kz-dl-row {
  display: flex;
  flex-direction: row;
  width: 100%;
}
.kz-dl-table dt, 
.kz-dl-table dd {
  flex: 1;
  margin: 0;
  padding: 12px 15px;
  border-right: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  box-sizing: border-box;
  color: #333;
}
.kz-dl-table dt { background: #f4f4f4; font-weight: bold; }

/* スマホ用縦積み(カード型)切り替え */
@media screen and (max-width: 600px) {
  .kz-dl-stack {
    min-width: 100%;
    border: none;
    background: transparent;
  }
  .kz-dl-stack .kz-dl-row {
    flex-direction: column;
    margin-bottom: 15px;
    border: 1px solid #ccc;
    border-radius: 5px;
    overflow: hidden;
    background: #fff;
  }
  .kz-dl-stack dt, .kz-dl-stack dd { border-right: none; width: 100%; }
  .kz-dl-stack dt { border-bottom: 1px solid #ccc; }
  .kz-dl-stack dd { border-bottom: 1px solid #eee; }
  .kz-dl-stack dd:last-child { border-bottom: none; }
}

まとめ

本来の「表(table)」ではなく「定義リスト(dl)」と「Flexbox」を組み合わせることで、スマホ対応が簡単になるだけでなく、テーマのCSS干渉も防げるという一石二鳥のテクニックです。ぜひご自身のサイトで使い分けてみてください!