0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

tableでoverflow-xで横スクロールするときにtdの幅が自動縮小される

Posted at

テーブルが画面の幅(ビューポート、親の幅)を超えるとthやtdにwidthを設定していても自動的に縮小される。
これはtableにoverflow-x:scrollを設定して横スクロールにしていた場合に特に問題になって、横長でスクロールにしたいのに勝手に幅が狭くなって横スクロールにならないときがある。

単純な解決方法はtableにwidthを設定することだが、今回の環境では列数が可変なのでtable自体の幅は自動にしたかった。また、tdの幅を変えるたびにtableの幅を計算し直すのもめんどくさい。

そういうときはmax-contentが使えるらしい。

table.scroll
{
  width: max-content;
  overflow-x: scroll;
}

これで、コンテンツ幅に合わせた幅に自動調整してくれる。

めっちゃ試行錯誤した。
最初に試したpaddingで空の幅を設定する方法は一見うまくいった。でもよく見ると高解像度ディスプレイでborderが1pxにならない問題があって、paddingだとbox-sizing:border-box 設定の意味がなくなりpx単位でピッタリ合わせることはできていなかった。
最後はClaude Codeに聞いて解決した。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?