LoginSignup
73
60

More than 5 years have passed since last update.

はみ出たtableを横スクロールで滑らかに表示するCSS

Last updated at Posted at 2019-02-28

たったの4行だけ

<table></table>に下記CSSを当てるだけ。

table {
  display: block;
  overflow-x: scroll;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}

2行目: 隠れた部分をx方向(=横)にスクロールして表示する
3行目: 自動で改行しない(←必要であれば)
4行目: スマホで滑らかにスクールする

ただ、セルの幅が効かない

<table></table>に上記CSSを一括で当てると、予期せぬレイアウト崩れが起きる。
スクロールが必要ないテーブルの場合、セルは中身の幅にフィットした横幅までしか広がらないので、右側に空白が生まれてしまう・・・

解決策その1:tableをdivで囲む

スクロールが必要なテーブルだけに、CSSが当たるようにする。

.scroll-table table {
  display: block;
  overflow-x: scroll;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}

解決策その2:tbodyをテーブル要素とする

table下のtbodyをdisplay:table;でtable要素にすることで、幅を指定することができる。

table {
  display: block;
  overflow-x: scroll;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
}
table tbody {
  width: 100%;
  display:table;
}
73
60
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
73
60