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

如何控制Flex容器内盒子尺寸不被挤压,保证指定盒子优先遵循设定宽度

问题根因

这是Flex布局的默认收缩规则导致的:Flex容器的直接子元素(flex item)默认flex-shrink属性值为1,当所有子元素的总宽度超过Flex容器的可用宽度时,所有子元素会按照收缩系数的比例压缩自身宽度来适配容器。
你当前场景中,左右两个盒子的内容宽度+内边距+中间盒子的100px总和已经超出了.content容器的总宽度,三个子元素同时被压缩,而中间盒子无内容填充,压缩后仅剩下约15px的宽度。

最优解决方案

要让指定的flex子项宽度固定不被挤压,只需要给该元素设置flex-shrink: 0,关闭它的收缩能力即可,这是优先级最高的固定flex子项尺寸的方案:

.center {
  width: 100px;
  height: 100%;
  flex-shrink: 0; /* 禁止该元素被压缩 */
}

如果你需要左右两个盒子平分除中间100px之外的剩余容器宽度,刚好适配你设置的50%对半的渐变背景,可以给左右盒子增加flex: 1属性,让它们自动伸展填充剩余空间:

.left {
  flex: 1;
  padding: 60px 60px 60px 130px;
}

.right {
  flex: 1;
  padding: 60px 130px 60px 60px;
  color: white;
}

flex: 1是flex-grow: 1; flex-shrink: 1; flex-basis: 0%的简写,作用是让元素优先占满容器剩余的可用空间。

内容的提问来源于stack exchange,提问作者m3.b

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:36:04