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

Grid布局需求:实现三div两列一行布局(首列固定宽度)

Grid布局问题解决方案

问题场景

现有HTML结构:

<div class="wrapper">
    <div class="one">One</div>
    <div class="two">Two</div>
    <div class="three">Three</div>
</div>

需要实现的布局需求:

  • 前两个子元素并排为两列:第一个列宽固定30px,第二个列占满剩余空间
  • 第三个子元素独占一行,宽度铺满容器

你之前尝试的CSS代码未达到预期:

.wrapper {
    display: grid;
    grid-template-columns: 20px auto 100%;
    border:1px solid white;
}

问题原因

你错误地在grid-template-columns中定义了三列,而实际只需要两列基础布局,第三个元素需要通过跨列实现独占一行的效果。

正确实现代码

CSS代码

.wrapper {
    display: grid;
    grid-template-columns: 30px 1fr; /* 定义两列:固定30px + 弹性占满剩余空间 */
    gap: 8px; /* 可选:添加列/行间距,优化视觉效果 */
    border: 1px solid white;
}

.three {
    grid-column: 1 / -1; /* 让元素跨占所有列,自动独占一行 */
}

代码说明

  • grid-template-columns: 30px 1fr:1fr是Grid布局的弹性单位,会自动分配容器的剩余可用空间,比auto更稳定,不会因子元素内容宽度影响布局
  • grid-column: 1 / -1:-1代表最后一列的位置,这个属性让第三个元素从第一列延伸到最后一列,自然占据整行宽度

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 10:55:24