【CSS】スマホのみテーブルを横スクロール可能にする方法

【CSS】スマホのみテーブルを横スクロール可能にする方法 HTML/CSS

Webサイトでテーブルを使うと、PCでは問題なく表示できても、スマホでは横幅が収まりきらず、レイアウトが崩れてしまうことがあります。そのような場合、スマホのみに横スクロールを適用することで、見やすいデザインを実現できます。

本記事では、スマホのみでテーブルを横スクロール可能にする方法を紹介します。

スマホのみに横スクロールを適用する方法

スマホでのみテーブルを横スクロールできるようにするには、overflow-x: auto; を利用し、CSSのメディアクエリを活用します。

CSSの設定

以下のコードを適用することで、画面幅が768px以下のときのみテーブルをスクロール可能にします。

/* スマホのみ横スクロール可能にする */
@media screen and (max-width: 768px) {
  .table-container {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch; /* スムーズなスクロール */
    white-space: nowrap; /* 折り返しを防ぐ */
  }

  table {
    min-width: 600px; /* テーブルの最小幅を設定 */
  }
}

ポイント

  • .table-container に overflow-x: auto; を指定し、横スクロールを有効にする。
  • -webkit-overflow-scrolling: touch; を追加することで、スマホでスムーズなスクロールが可能になる。
  • white-space: nowrap; を適用し、セルの内容が折り返されるのを防ぐ。
  • table に min-width を指定し、必要な幅を確保する。

HTMLの記述

テーブルを .table-container でラップすることで、スマホ時にスクロール可能なエリアを作ります。

<div class="table-container">
  <table>
    <thead>
      <tr>
        <th>見出し1</th>
        <th>見出し2</th>
        <th>見出し3</th>
        <th>見出し4</th>
        <th>見出し5</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>データ1</td>
        <td>データ2</td>
        <td>データ3</td>
        <td>データ4</td>
        <td>データ5</td>
      </tr>
      <tr>
        <td>データA</td>
        <td>データB</td>
        <td>データC</td>
        <td>データD</td>
        <td>データE</td>
      </tr>
    </tbody>
  </table>
</div>

このように .table-container を用意しておくことで、スマホ時のみスクロール可能になります。

サンプル

見出し1 見出し2 見出し3 見出し4 見出し5
データ1 データ2 データ3 データ4 データ5
データA データB データC データD データE

実装後の動作確認

実装後、スマホや開発者ツールのレスポンシブモードで以下を確認しましょう。

✅ スマホ(768px以下)でテーブルが横スクロールできるか。
✅ PCでは通常の表示のままであるか。
✅ スクロールがスムーズに動作するか。

これらが問題なく機能していれば、正しく適用されています。

まとめ

スマホのみテーブルを横スクロール可能にする方法を紹介しました。

✅ .table-container に overflow-x: auto; を設定
✅ -webkit-overflow-scrolling: touch; でスムーズなスクロールを実現
✅ min-width を設定し、テーブルの最小幅を確保

この方法を使えば、スマホでのテーブル表示を快適にできます。レスポンシブデザインを考慮する際は、ぜひ活用してみてください!