【发布时间】:2021-06-10 14:23:41
【问题描述】:
如果我有这样的 HTML 结构:
<div style="display: flex; align-items: stretch; height: 150px; overflow: auto">
<div style="background: red; width: 30px"></div>
<div style="background: yellow; flex-grow: 2; height: 200px"></div>
</div>
align-items: stretch 会将第一个子元素的高度设置为 flex 元素的innerHeight,而不是它的实际可滚动高度。因此,当您向下滚动时,红色背景会停在初始视口的底部。
height: 100% 也有类似的问题(高度是相对于父母的外在大小)。
可以通过引入另一个包装元素并将overflow 和height 样式移至该元素来解决此问题,但在我的情况下,由于其他原因,这很尴尬。有没有办法让所有 flex 孩子都保持相同(完整)高度而不这样做?
【问题讨论】:
-
相关(可能重复):stackoverflow.com/q/45497031/3597276