【发布时间】:2015-08-06 23:57:30
【问题描述】:
有没有办法告诉 flexbox 项目填充剩余空间,但一旦它们变得小于其内容时就换行。
虽然有些项目具有固定的百分比宽度。
HTML
<div class="grid">
<div class="grid__item">column auto</div>
<div class="grid__item one-third">column 33.333%</div>
<div class="grid__item one-third">column 33.333%</div>
<div class="grid__item">column auto</div>
</div>
CSS
.grid {
display: flex;
flex-direction: row;
flex-wrap: wrap;
background: gray;
}
.grid__item {
background: red;
flex: 1;
}
.one-third {
flex-basis: 33.333%;
background: green;
}
我希望固定宽度的项目(绿色)始终具有 33.333% 的宽度。其他项目(红色)应填满剩余空间。如果屏幕越来越小,如果没有足够的空间来显示它们的内容,我希望这些项目可以换行。
我想我可以简单地在容器上使用flex: 1 和flex-wrap: wrap 来执行类似的操作,但正如您在pen 中看到的那样,它根本不会换行。如果我在.grid__item 中删除flex: 1,它们会自动换行,但不会一直缩小到非常小的屏幕尺寸。
【问题讨论】: