我希望通过变得可滚动来缩小flexbox子项。我创建了这个(jsfiddle),它可以在Chrome中运行,但不适用于Firefox:
在Chrome中,当框架垂直收缩以使绿色部分的内容不适合时,绿色部分变为可滚动。主框架没有滚动条。
然而,在Firefox中,整个框架都会获得滚动条,并且绿色部分的滚动条始终处于禁用状态。
HTML:
<div class="flex-column" style="height: 100%">
<div style="background-color: red">
Foo
</div>
<div class="flex-column flex-shrink1">
<div class="flex-column flex-shrink1" style="overflow-y: scroll; background-color: green">
Bar<br>Bar<br>Bar<br>Bar<br>
Bar<br>Bar<br>Bar<br>Bar<br>
Bar<br>Bar<br>Bar<br>Bar<br>
Bar<br>Bar<br>Bar<br>Bar<br>
</div>
</div>
</div>
CSS:
html, body {
height: 100%;
padding: 0px;
margin: 0px;
}
.flex-column {
display: flex;
flex-direction: column;
}
.flex-column>* {
flex-shrink: 0;
}
.flex-shrink1 {
flex-shrink: 1;
}
更新:Firefox的修复方法是将样式min-height: 0
添加到包含可滚动div的div,以及使用嵌套flex布局时可能的父Flex项目(请参阅{{3} },2)。但是,这不能解决Internet Explorer 11上的问题。