我正在尝试填充Flexbox中的弹性项的垂直空间。
.容器{高度:200px;宽度:500px;显示:柔性;弯曲方向:行;}.flex-1型{宽度:100px;背景色:蓝色;}.flex-2型{位置:相对;挠曲:1;背景色:红色;}.flex-2-儿童{高度:100%;宽度:100%;背景色:绿色;}<div class=“container”><div class=“flex-1”></div><div class=“flex-2”><div class=“flex-2-child”></div></div></div>
这是JSFiddle
flex-2-child不能达到要求的高度,以下两种情况除外:
flex-2的高度为100%(这很奇怪,因为默认情况下flex-2具有100%的高度,而且在Chrome中存在bug)flex-2-child具有绝对位置,这也不方便
这在Chrome或Firefox中目前不起作用。
如果我理解正确,您希望flex-2-child填充其父项的高度和宽度,以便红色区域被绿色完全覆盖?
如果是这样,您只需设置flex-2以使用Flexbox:
.flex-2 {
display: flex;
}
然后告诉flex-2-child变得灵活:
.flex-2-child {
flex: 1;
}
看见http://jsfiddle.net/2ZDuE/10/
原因是flex-2-child不是Flexbox项,但它的父项是。
这是我使用css+的解决方案。
首先,如果第一个子项(flex-1)应该是100px,那么它不应该是flex。
事实上,在css+中,您可以设置灵活和/或静态元素(列或行),您的示例变得如此简单:
<div class="container">
<div class="EXTENDER">
<div class="COLS">
<div class="CELL _100px" style="background-color:blue">100px</div>
<div class="CELL _FLEX" style="background-color:red">flex</div>
</div>
</div>
</div>
容器CSS:
.container {
height: 200px;
width: 500px;
position: relative;
}
显然包括css+0.2内核。
这是小提琴。