我有一个带有 flex-direction: row
的 flexbox。子项目有一个 min-width
集。当窗口缩小超过到达 min-width
的点时,项目开始溢出弹性容器。
.parent {
display: flex;
flex-direction: row;
background-color: red;
}
.child {
min-width: 100px;
flex-basis: 0px;
flex-grow: 1;
margin: 5px;
height: 100px;
background-color: blue;
}
<div class="parent">
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
</div>
https://jsfiddle.net/4t8029q8/
有没有办法强制容器拉伸以包含项目而不在父级上设置显式 min-width
?这样做提供了我试图实现的行为,但过于僵硬,无法容纳可变数量的项目。
.parent {
display: flex;
flex-direction: row;
background-color: red;
min-width: 330px
}
.child {
min-width: 100px;
flex-basis: 0px;
flex-grow: 1;
margin: 5px;
height: 100px;
background-color: blue;
}
<div class="parent">
<div class="child"></div>
<div class="child"></div>
<div class="child"></div>
</div>
https://jsfiddle.net/4t8029q8/1/
这就是我想要的,因为弹性项目永远不会溢出弹性容器,即使它导致页面需要水平滚动也是如此。
注意:我还有其他更复杂的逻辑需要 flex-basis: 0px
和 flex-grow: 1
,因此无法删除这些行。
原文由 thedarklord47 发布,翻译遵循 CC BY-SA 4.0 许可协议
在
.parent
类上设置display: inline-flex
以将其更改为内联元素。这也将迫使.parent
扩展以包含其子项。然后通过在.parent
类上设置min-width: 100%
,它将强制它扩展到包含元素的 100%。