You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让含固定高度子元素的父容器中,可扩展div不溢出

解决Flex布局中滚动容器溢出父容器的问题

问题根源

你的布局里,那个设置了flex-grow: 1的橙色虚线容器(第二个子元素),在flex column方向布局下默认带有min-height: auto属性——这个属性会让容器被内部内容撑开,完全无视父容器的高度限制,导致里面设置了overflow-y: scroll的center容器无法触发滚动,跟着一起溢出父容器。

修复方案

给橙色虚线容器添加min-height: 0,强制它的高度受限于父容器的剩余空间,这样内部的滚动容器就能正常工作。

修改后的代码

<html>
<head>
  <style>
html {
  box-sizing: border-box;
}
*, *:before, *:after {
  box-sizing: inherit;
}
  </style>
</head>

<body style="height: 300px; max-height: 300px; margin: 0px; padding: 5px; border: 1px solid red;">
  <div style="height: 100%; max-height: 100%; display: flex; flex-direction: column; margin: 0px; padding: 5px; border: 1px solid green;">

    <div style="height: 50px; padding: 5px; border: 1px dashed blue;">
      top
    </div>

    <div style="flex-grow: 1; display: flex; padding: 5px; border: 1px dashed orange; min-height: 0;">
      <div style="padding: 5px; border: 1px dashed blue;">
        left
      </div>
      <div style="flex-grow: 1; padding: 5px; border: 1px dashed blue; overflow-y: scroll;">
        center<br/>center<br/>center<br/>center<br/>center<br/>center<br/>center<br/>center<br/>
        center<br/>center<br/>center<br/>center<br/>center<br/>center<br/>center<br/>center<br/>
      </div>
      <div style="padding: 5px; border: 1px dashed blue;">
        right
      </div>
      </div>
    </div>
  </div>
</body>

</html>

内容的提问来源于stack exchange,提问作者godfryd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 00:42:48