CSS: 使用子元素处理溢出

CSS: Handle overflow using the child element

我在这个架构中有一个 html 代码:

<div id="container">
    ... some divs ...
    <div id="results">
        ... some content ...
    </div>
</div>

results中写入的内容发生变化,有时 results' 的高度会超过 container[=24] =]的底部。我想要 results 处理滚动条溢出而不是 container 但我似乎无法解决这个问题。我应该怎么办?我愿意接受 javascript 解决方案,只要它们能够灵活地适应 window 大小的变化。

注意:results div 在 CSS 中没有固定的非百分比高度,也不会有。

你可以这样走:

#container {overflow: hidden;}
#results {
    max-height: 400px;
    overflow: scroll;
}

这将实现您想要实现的目标,如果还需要什么,请告诉我?

在child上使用overflow-y: auto,在parent上使用overflow-y: hidden,如果不能给出固定高度,请给出max-height

#container {
  overflow-y: hidden;
}

#results {
  max-height: 200px;
  overflow-y: auto;
}

如果你能负担得起使用 flexbox 你可以通过以下方式解决它(为简洁起见省略前缀):

#container {
  height: 150px;
  display: flex;
}

#results {
  overflow-y: scroll;
}

https://jsfiddle.net/4n3tmbm3/5/