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

网格布局下实现中间div缩放固定、左右div自适应拉伸的问题

网格布局下实现中间div缩放固定、左右div自适应拉伸的问题

嘿,我来帮你搞定这个需求!你想要中间的div在页面缩放时保持固定尺寸,左右两个自动拉伸填充剩余空间对吧?原来的网格列用了百分比设置,这就导致中间列会跟着页面缩放一起变化,咱们调整一下CSS就能轻松实现目标啦。

首先先纠正一下HTML里的小笔误——你写的<mdiv>应该是<div>,不然浏览器没法正确识别这个标签哦。

接下来是关键的CSS调整:把.dvCenter里的grid-template-columns: 40% 20% 40%;改成grid-template-columns: 1fr [固定宽度值] 1fr;,比如我这里用200px作为中间列的固定宽度,你可以根据自己的需求换成rem或者其他固定单位。这样设置后,左右两列会用1fr弹性分配容器的剩余空间,中间列则保持固定宽度,完全不会受页面缩放影响。

下面是修改后的完整代码:

HTML

<div class="dvCenter">
  <div class="dvCenter1"></div>
  <div class="dvCenter2"></div>
  <div class="dvCenter3"></div>
</div>

CSS

.dvCenter{
  background-color: black;
  height: 110px;
  align-items: center;
  display: grid;
  /* 核心修改:左右用1fr弹性分配,中间固定宽度 */
  grid-template-columns: 1fr 200px 1fr;
  grid-template-rows: 100%;
}

.dvCenter1{
  background-color: blue;
  height: 80%;
  grid-row: 1;
  grid-column: 1;
}

.dvCenter2{
  background-color: brown;
  height: 100%;
  grid-row: 1;
  grid-column: 2;
}

.dvCenter3{
  background-color: blue;
  height: 80%;
  grid-row: 1;
  grid-column: 3;
}

简单解释一下:1fr是网格布局里的弹性单位,代表“剩余空间的一份”,左右各占1份就会自动平分容器除去中间固定宽度后的剩余空间,不管页面怎么缩放,中间的棕色div宽度都保持不变,左右的蓝色div会自动拉伸填满空隙,完美符合你的需求~

备注:内容来源于stack exchange,提问作者user3137261

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 07:18:07