flex-wrap 在嵌套的 flex 容器中不起作用 [英] flex-wrap not working in nested flex container
问题描述
在本例中,当屏幕宽度较小时,我预计蓝色和红色框会环绕,因为青色框设置为 flex-wrap.
然而,这并没有发生.为什么这不起作用?
代码如下:
.foo,.foo1,.foo3 {颜色:#333;文本对齐:居中;填充:1em;背景:#ffea61;框阴影:0 0 0.5em #999;显示:弹性;}.foo1 {背景:绿色;宽度:200px;弹性:1 1 100%;}.foo2 {背景:粉红色;显示:弹性;填充:10px;}.foo3 {背景:青色;flex-wrap: 包裹;}.bar1,.bar2 {背景:蓝色;宽度:50px;高度:30px;}.bar2 {背景:红色;}.柱子 {显示:弹性;弹性方向:列;flex-wrap: 包裹;背景:橙色;高度:150px;}
<div class="foo1"></div><div class="foo"><div class="foo2"><div class="foo3"><div class="bar1"></div><div class="bar2"></div>
<div class="foo1"></div>
详情请见以下链接:http://codepen.io/anon/pen/vxExjL
这可能是 column wrap
flex 容器的错误.青色框拒绝收缩,防止红色框包裹.
您可以为第二列或 .foo2
或 .foo3
设置宽度,这将强制项目换行.但这可能不是您想要的.
在这种情况下,一种解决方法是不使用 column wrap
.坚持 row nowrap
:
.column {显示:弹性;背景:橙色;高度:150px;}.foo,.foo1,.foo3 {显示:弹性;对齐内容:居中;颜色:#333;文本对齐:居中;填充:1em;背景:#ffea61;框阴影:0 0 0.5em #999;}.foo {弹性:1;}.foo1 {弹性:0 0 200px;背景:绿色;}.foo2 {显示:弹性;背景:粉红色;填充:10px;}.foo3 {flex-wrap: 包裹;边距:0 自动;背景:青色;}.bar1,.bar2 {背景:蓝色;宽度:50px;高度:30px;}.bar2 {背景:红色;}
<div class="foo1"></div><div class="foo"><div class="foo2"><div class="foo3"><div class="bar1"></div><div class="bar2"></div>
<div class="foo1"></div>