レスポンシブデザインでテーブルを横スクロールさせる方法
  • レスポンシブデザインでテーブルを横スクロールさせる方法
  • 記事公開:2018/05/17
  • 最終更新:2019/02/18

レスポンシブデザインでテーブルを横スクロールさせる方法

スマホ表示でテーブルを最適化するとき、扱いづらいテーブルが出てくるかと思います。そんなテーブルを横スクロールさせることで、簡単に最適化する方法をご紹介しています。横スクロールできることを伝えるテクニック付きです。

この記事は約 7 分で読めます。

レスポンシブデザインでテーブルを横スクロールさせる機会が多い

レスポンシブデザインでサイトを構築していると、スマホ表示の際、レイアウトに困ってしまうテーブルが出てきます。

複雑な料金表、複雑なスペック表などですね。
行や列が多いテーブルはレスポンシブデザインの場合、悩みの種の一つです。

対応方法は色々とあるのですが、最も簡単なのが【テーブルを横スクロールさせる】方法だと思います。

1-1 1-2 1-3 1-4 1-5
2-1 2-2 2-3 2-4 2-5
3-1 3-2 3-3 3-4 3-5
4-1 4-2 4-3 4-4 4-5

PCでこのコンテンツを見ている方は、ブラウザの横幅を小さくしてください。
スマホで見ている方は、コンテンツを横に動かしてみてください。

テーブルが横スクロールできますよね!

PCで見ている方は、テーブルの下部にスクロールバーが表示されているかと思います。
スマホで見た際は、このスクロールバーは表示されません。

このテーブルを横スクロールさせる方法ですが、覚えておくと本当に役立ちます。

横スクロールのやり方を見ていきましょう。

テーブルを横スクロールさせる方法

テーブルを横スクロールさせるのは、CSSのみで対応することが可能です。
例えば、以下のtableを横スクロールさせて見ましょう。

<table>
<tr>
<th>1-1</th>
<th>1-2</th>
</tr>
<tr>
<td>2-1</td>
<td>2-2</td>
</tr>
<tr>
<td>3-1</td>
<td>3-2</td>
</tr>
<tr>
<td>4-1</td>
<td>4-2</td>
</tr>
</table>

まず、上記のtableタグを【divタグ】で囲ってやります。
今回は【test】というclassを付けて囲ってみます。

<div class="test">
<table>
<tr>
<th>1-1</th>
<th>1-2</th>
</tr>
<tr>
<td>2-1</td>
<td>2-2</td>
</tr>
<tr>
<td>3-1</td>
<td>3-2</td>
</tr>
<tr>
<td>4-1</td>
<td>4-2</td>
</tr>
</table>
</div>

横スクロールさせたいテーブルを囲ったdiv要素に下記の2行(赤文字)を記述をします。
スマホ表示時に適応されるCSSセレクタに追記してください。

.test {
overflow: auto; /* 横スクロールバーを表示 */
white-space: nowrap; /* セル内にあるテキストの折り返しを禁止 */

}

これだけで、テーブルが横スクロールできるようになります。

【注意】テーブルの横幅が100%指定になっていると、横スクロールになりません。
横幅を100%にすると要素内に収まってしまうためです。

上記の場合、全てのテーブルが横スクロールになります。
特定のテーブルを横スクロールにしたい場合は、そのテーブルにCSSを追記してください。

例えば、IDセレクタが【test】のテーブルを横スクロールにする場合は、以下のような記述となります。

2行追記するだけでテーブルを横スクロールにできます。
簡単ですよね!

訪問者に横スクロールできると効果的に伝える方法

横スクロールできるテーブルをスマホで見たとき、スクロールバーが表示されていないため、単にテーブルが画面からはみ出しているように見えてしまいます。

これではユーザービリティがよろしくありません。
「このテーブルは横にスクロールできますよ~」と伝えてあげるのが親切というものでしょう。

この伝え方にも色々とあるかと思うのですが、私は以下の様にして訪問者に伝えています。
スマホから下記の表を確認してください(PCはブラウザの幅を縮小)。

1-1 1-2 1-3 1-4 1-5
2-1 2-2 2-3 2-4 2-5
3-1 3-2 3-3 3-4 3-5
4-1 4-2 4-3 4-4 4-5

スマホ表示の際、テーブルの下部に【※ このテーブルは横スクロールできます】と表示されます。
こうしておけば、横スクロールできることが一目瞭然です。

テーブルを囲っているdiv要素に擬似要素を設定してやります。
囲っているdiv要素のclassが【test】の場合は、以下の様になります。

.test:after {
content: "※ このテーブルは横にスクロールできます。";
}

表示させるテキストはご希望のもに変更してください。

まとめ

レスポンシブデザインでテーブルを横スクロールさせる方法をご紹介しました。

レスポンシブデザインで複雑なテーブルは頭を悩ませるやっかいなポイントです。
ですが、今回ご紹介した方法で横スクロールさせれば、簡単にレスポンシブに対応できます。

横スクロールできることを訪問者に伝えることも忘れないでください。

著者:takaya kondo

岡山在住のWebディレクターです。Wordpressを使ったWEBサイト制作を中心に10年間ほど活動させていただいています。

Wordpress関連の記事でお役に立てれば幸いです。

あなたのWEBサイトをWordpressで
管理できるようにしませんか?

あなたのWEBサイトを見た目そのままでWordpress化いたします。
以下に興味のある方は、お気軽にご相談下さい。

  • あなたのWEBサイトを、Wordpressで運営できる様にいたします。ページの編集や追加も簡単に行えるようになります。
  • どの様な形式のサイト(例えば、アメブロ、MTサイトなど)でもWordPress化いたします。
  • Wordpress化でサイトのデザインが崩れるなどの心配は必要ありません。デザインもサイト構成もほぼ変わらない、高い再現率が自慢です。
  • 単にWordpress化するだけではありません。デザイン変更など+αの作業にも対応することも可能です。
  • 他案件との兼ね合いもありますが、最短即日であなたのサイトをWordpress化いたします。
  • 初心者でもWordpressが使えるよう、納品後に徹底的な操作サポートをご提供いたします。Wordpress化したけど操作できないと、あなたが頭を抱えることはありません。

興味のある方は、以下のリンクからチェックしてみてください。

詳細を確認する

現在、上記サービスは別ドメインで運用しております。
ドメインは異なりますが、わたしが提供させていただいているサービスです。

【関連記事】あなたが興味のありそうな関連記事をご紹介します。

  • 2014-12-09

    CSSで背景を半透明にする方法

    「CSSで背景色を半透明する方法」をご紹介します。 記事を読む

  • 2016-04-04

    画像加工はもう不要!CSSだけで画像を円形にする方法

    CSSだけで画像を円形にする方法をご紹介します。この方法を知っていれば、画像を個別に加工する必要はなくなります。スタイリッシュな円形画像をサイトデザインに取り入れたい方、ぜひ参考にしてください。それでは、CSSだけで画像を円形にする方法をどうぞ! 記事を読む

  • 2015-11-11

    片方だけ横幅を設定してfloatする方法

    片方だけ横幅を設定してfloatする方法をご紹介します。横並びの要素で一方だけ横幅を設定したいあなたは、このコンテンツを参考にしてください。2分後にはあなたの希望が形になります。 記事を読む

  • 2018-03-26

    WordPressでレスポンシブデザインを作成するときに役立つコンテンツ12選

    レスポンシブデザインの構築で役立つコンテンツをまとめました。 レスポンシブデザインを構築する時、大抵の場合で必 ... 記事を読む

  • 2016-02-15

    スマホを横向きにした時、WEBサイトの文字サイズを勝手に変更させない方法

    スマホの縦向きと横向きでWEBサイトの文字サイズを勝手に変更させない方法をご紹介しました。文字サイズを変えたくないという方もいると思います。1回のコピペで実装できますので試してみてください。 記事を読む

コメントを残す

(必須)

CAPTCHA