レスポンシブデザインでテーブルを横スクロールさせる機会が多い
レスポンシブデザインでサイトを構築していると、スマホ表示の際、レイアウトに困ってしまうテーブルが出てきます。
複雑な料金表、複雑なスペック表などですね。
行や列が多いテーブルはレスポンシブデザインの場合、悩みの種の一つです。
対応方法は色々とあるのですが、最も簡単なのが【テーブルを横スクロールさせる】方法だと思います。
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: "※ このテーブルは横にスクロールできます。";
}
表示させるテキストはご希望のもに変更してください。
まとめ
レスポンシブデザインでテーブルを横スクロールさせる方法をご紹介しました。
レスポンシブデザインで複雑なテーブルは頭を悩ませるやっかいなポイントです。
ですが、今回ご紹介した方法で横スクロールさせれば、簡単にレスポンシブに対応できます。
横スクロールできることを訪問者に伝えることも忘れないでください。
コメントを残す