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

如何让div的第3个无固定宽子元素占据父容器剩余宽度

实现自适应内容宽度元素+剩余空间填充的横向布局

直接用CSS Flex布局就能完美解决你的需求,不需要计算任何固定宽度,完全适配所有给定条件:

修改后的完整代码

<div class="container">
  <div class="menu">
    <div class="one">
      one
    </div>
    <div class="two">
      two
    </div>
    <div class="remaining">
      remaining
    </div>
    <div class="three">
      three
    </div>
  </div>
</div>
.container{
  width:100%;
  background-color:tomato;
  padding:4px 0;
}
.menu{
  background-color:orange;
  width:300px;
  display: flex; /* 核心:开启flex布局 */
}
.one,.two,.three{
  background-color:dodgerblue;
  /* 默认flex-grow:0,自动占据自身内容宽度 */
}
.remaining{
  background-color:green;
  flex-grow: 1; /* 核心:让该元素占据父容器剩余所有空间 */
}
.menu,.one,.two,.three,.remaining{
  padding:5px;
  border:1px solid black;
}
/* 移除原来的inline-block设置,flex布局不需要 */

关键逻辑说明

  • 给.menu添加display: flex,将容器内的子元素转为弹性布局项
  • .one、.two、.three保持默认的flex-grow: 0,只会占用自身文本内容所需的宽度
  • 给.remaining设置flex-grow: 1,它会自动填充.menu容器中除了其他三个元素之外的所有剩余空间,直接把.three推到容器末端,完全覆盖.menu的橙色背景

这样就完全满足你所有的要求:所有子元素宽度无需预设,前三个元素自适应内容,第三个元素填满剩余空间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:18:37