以前、レスポンシブ対応の2列のテーブルを入れるときのコードをコピペ用に記載しました
テーブルが2列、構成によっては3列とかなら上記のやり方でうまくいきますが
こんなテーブルならスマホのときどうするか
↓ ↓ ↓ ↓ ↓
3月 | 4月 | 5月 | 6月 | 7月 | 8月 | 9月 | 10月 | |
鳥取 | 500 | 560 | 570 | 500 | 510 | 520 | 560 | 520 |
岡山 | 600 | 610 | 590 | 630 | 610 | 600 | 630 | 590 |
島根 | 300 | 330 | 320 | 340 | 370 | 400 | 310 | 340 |
広島 | 1200 | 1300 | 1380 | 1160 | 1050 | 960 | 890 | 1050 |
山口 | 650 | 660 | 620 | 600 | 610 | 600 | 660 | 610 |
ということでこれまで実際に行った解決策がこちらです
2段~にわける
3月 | 4月 | 5月 | 6月 | |
鳥取 | 500 | 560 | 570 | 500 |
岡山 | 600 | 610 | 590 | 630 |
島根 | 300 | 330 | 320 | 340 |
広島 | 1200 | 1300 | 1380 | 1160 |
山口 | 650 | 660 | 620 | 600 |
7月 | 8月 | 9月 | 10月 | |
鳥取 | 510 | 520 | 560 | 520 |
岡山 | 610 | 600 | 630 | 590 |
島根 | 370 | 400 | 310 | 340 |
広島 | 1050 | 960 | 890 | 1050 |
山口 | 610 | 600 | 660 | 610 |
この見せ方でも大丈夫な場合はありかと思います
スマホ用の表を別に作り、PCとスマホで出し分け(表が2つ)
スマホではがっつり書き方を変えるパターンです
これならどんな表でも対応はできますが、作る作業&更新の作業が2倍ということになります
作るのはともかく更新が2つというのが意外と手間がかかるんですよね
時間が経つと2つあることをうっかり忘れてしまい PCの方しか更新してなかった、ということをやってしまったりします…
なのでスマホでの見せ方にこだわる場合の最終手段でしょうか
そのまま、PCと同じ形のテーブルで見せる場合
幅を縮小して文字を小さくし、画面いっぱいに表示
数字の場合ある程度小さくても意外と収まったりするので1番多いタイプかもしれません
ただあまり小さいとユニバーサルデザインの観点からはふさわしくないことにもなるので、お客様の希望との兼ね合いをどうするか、ということになりますが
テーブルだけ横スクロールさせる
列数や値の文字数から画面いっぱいにおさめるのはどうしても難しい場合
テーブルをdivで囲み、そのdivタグに対して横スクロールの設定をします
HTML
<div class="table_box">
<table>
・
・
・
</table>
</div>
CSS
.table_box {
overflow: auto;
-webkit-overflow-scrolling: touch;
}
これでテーブルだけが画面をはみ出した状態で表示され
スワイプすると横に流れるので全部見ることができます
一時期グローバルナビもこの方法で作っているのをよく見かけました
テーブルをPDFにしてリンクさせる
クリック(タッチ)するとPDFがダウンロードされ、大きく表示することができます
さらに拡大縮小もできるのでスマホでも文字を読み取りやすくなります
ページ上で見るよりひと手間かかる感はありますが表そのものは見やすいのが良いです
これまでの対応策としては、ひとまずこんな感じでしょうか…
テーブルに限りませんが、
- 何を見せるための表なのか
- クライアントさんがどう見せたいか
- 最終的にユーザーにわかりやすく伝わるか
のバランスをとりつつその時々で…ということですね ( ̄▽ ̄)
コメント