前提・実現したいこと
あるdivの子要素の高さが動的に変わる部分があるのですが、画面に入り切らなくなった場合にのみスクロールバーを出したい。
そして、スクロールバーが表示される場合はスクロールバーの幅だけdivの幅を自動的に広げたい。
試したコード
https://codepen.io/takabosoft/pen/LYpKEjL
html
1<div class="container"> 2 <div class="scroll"> 3 <div class="scrollitems"></div> 4 </div> 5</div>
css
1* { 2 box-sizing: border-box; 3 overflow: hidden; 4} 5 6.container { 7 border: 4px solid gray; 8 display: flex; 9 height: 300px; 10} 11 12.scroll { 13 flex: 0 0 auto; 14 border: 4px solid red; 15 overflow-y: auto; 16} 17 18.scrollitems { 19 width: 200px; 20 height: 700px; 21 border: 4px solid green; 22}
試した結果
chromeでは期待通りに動きますが、firefoxでは幅が広がりません。
firefoxでもchromeのようにスクロールバーが自動で表示された時に幅も自動的に広げるようにする方法はあるでしょうか?
代替案
overflow-yをscrollにすると、firefoxでも幅が広がるので、
JavaScriptでdivの子要素の高さをどうにかして監視し、スクロールバーが必要になったらoverflow-yをscrollに、そうでない場合はhiddenに切り替えるという方法を考えました。
ただ、そこまでせずともCSS等で簡単に実現できる方法があればご教示をお願いいたします。
補足情報(FW/ツールのバージョンなど)
Firefox 76.0.1 (64 ビット)
Chrome 83.0.4103.61
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/29 05:07