假设我们有这个标记:
<div id="outer">
<div id="middle">
<div id="inner">
</div>
</div>
</div>
和这个css:
#outer {
display: flex;
flex-direction: column;
background-color: white;
height: 300px;
}
#middle {
flex-grow: 1;
background-color: beige;
}
#inner {
background-color: black;
height: 100%;
}
我期望内部div跨越整个300像素,因为它应该与中间的flex项一样高,而中间的flex项填充其父级。
这是我在IE、Edge和Firefox上看到的行为。
在Chrome上,中间的div仍然填充300像素,但内部div的高度就像没有任何高度属性一样。
请参见此fiddle: https://jsfiddle.net/mhjussna/
这是Chrome的一个错误,对吗?
height:100%
在 flex 中会出现错误。相反,在#outer
元素上使用align-items: stretch
。 - Farzad Yousefzadehalign-items
用于在flex-direction
为column
时进行水平对齐,因此与问题无关。另请注意,我不会在直接参与 flex 布局的任何元素上使用height: 100%
。 - John