73
61

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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
61
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
61

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?