block要素をinline-block要素っぽく扱う方法
fit-contentを使うことで、block要素でも中身のサイズに合わせてwidth
が変わる。(FigmaのHugコンテンツ的な感じ、しらんけど)
<div class="container">
<div class="item">...</div>
<div class="item">...</div>
<div class="item">...</div>
</div>
<style>
.item {
width: fit-content;
}
</style>
inline-blockとfit-contentの違い
inline-block
を使えば中身にあわせてwidth
が変わってくれるけどinline(横並び)
になってしまうinline-block
のまま縦並びにするためにflexboxでflex-direction: column
をするとwidth
が親コンテンツいっぱいに広がってしまう- 解消するには
width
を指定する orflex-grow
/shrink
/basis
などを指定するなどわりと面倒
- 解消するには
block要素として使いたいけど、width
は子要素によって変わってほしいというときに fit-content
が活躍する。
デモ
block block block
max-content max-content max-content
min-content min-content min-content
fit-content fit-content fit-content