在Chrome上我遇到了Flexbox行为,我不明白。当flex子容器也是一个flex容器flex: 1 0 0px
时,它会折叠自己及其内容。
即使flex-basis
设置为0px
,据我所知,将flex-grow
设置为1
(flex
简写中的第一个数字)应该项目在需要时增长。
在我的示例.bottom-container
中,height
设置为300px
。 height
在Firefox上受到尊重,但在Chrome上折叠为0px
。为什么呢?
.top-container {
display: flex;
flex-flow: column nowrap;
}
.middle-container {
flex: 1 0 0px;
display: flex;
flex-flow: column nowrap;
}
.bottom-container {
flex: 0 0 auto;
height: 300px;
}

<div class="top-container">
<div class="middle-container">
<div class="bottom-container"></div>
</div>
<div class="middle-container">
<div class="bottom-container"></div>
</div>
</div>
&#13;
答案 0 :(得分:1)
问题在于flex-basis
组件。
当您flex-basis: 0
时,Chrome和Firefox会计算到flex-basis: 0px
。
但是,像素值会破坏Chrome中的布局。
相反,对于跨浏览器兼容性,请使用:
flex: 1 0 0%
答案 1 :(得分:0)
好的,这就是逻辑。
您尚未指定.top-container
的高度,因此它的子元素(.middle-container
)无法增长,因为它们没有空间让成长为 ,尽管有flex: 1 0 0
,因此.middle-container
元素的高度始终为0。