[HTML]サムネイルを横並びにする場合に、サムネイル群が横幅MAXでない場合は中央揃え、横幅を超える場合は左揃えにしてスクロールありにする方法
ダメなパターン
クリティカルな部分以外は省略します。
.flexbox {
display: flex;
justify-content: center;
overflow-x: auto;
width: 800px;
}
この場合、2つの問題がある。
- 中央揃えになるが、スクロールが発生する場合に左揃えにならない
- 画面右に隠れた要素はスクロールで表示できるが、画面左端(0pixcel目)より左側に伸びた要素は途切れてしまう
解決方法
index.scss
.wrapper {
text-align: center;
.flexbox {
display: inline-flex;
justify-content: flex-start;
overflow-x: auto;
max-width: 800px;
}
}
index.html
<div class="wrapper">
<div class="flexbox">
<!-- サムネイルのimg要素たち -->
</div>
</div>
要点は2つ
display: inline-flex;
およびmax-width: 800px;
によりFlexBoxのサイズを可変にする- ラッパーを用意し、
text-align: center;
で中央揃えにする