最快写法是 grid-template-columns: 1fr 1fr,但真实场景需按右侧内容类型选择:固定尺寸用 minmax(0, max-content) 或 fit-content(32px),长文本需加 min-width: 0 和 word-break;左固定右自适应推荐 240px 1fr;移动端切单列需完整重写模板。

直接用 grid-template-columns: 1fr 1fr 最快,但多数真实场景下它并不适用——真正“快速又可靠”的写法取决于你右侧内容的类型。
右侧是固定尺寸控件(如按钮、图标)时,别用 auto
很多人一上来就写 grid-template-columns: 1fr auto,结果右侧按钮把整行撑宽,左侧 1fr 缩水甚至消失。这是因为 auto 等价于 minmax(min-content, max-content),浏览器不会主动压缩它。
- 改用
minmax(0, max-content):明确告诉 Grid “可收缩到 0”,右侧内容才能真正“包住自己不抢空间” - 右侧子元素必须加
overflow: hidden; text-overflow: ellipsis; white-space: nowrap,否则长文本仍会突破边界 - 如果按钮宽度恒定(比如 32px),直接写
fit-content(32px)更语义清晰,且 Safari 兼容更好
右侧是长文本或不可折行内容时,min-width: 0 是必选项
哪怕用了 用 别只改其中一列,也别试图用 最容易被忽略的其实是右侧子元素的继承行为:minmax(0, max-content),只要子元素是 min-width: auto。
min-width: 0,这是打破“内容优先”默认行为的关键开关word-break: break-word 或 overflow-wrap: break-word,防止单个长词溢出min-width: 0 必须加在**实际承载文本的元素上**,不是 Grid 容器,也不是外层 wrapper需要左固定右自适应时,
240px 1fr 比百分比更稳grid-template-columns: 20% 80% 看似直观,但一旦子元素带 min-width: 200px,整列就会撑破容器。而像素值 + 1fr 组合由 Grid 自动扣除 gap 后分配剩余空间,逻辑更可控。
240px 1fr 是最常用组合,左侧导航/侧边栏刚好不挤,右侧内容有足够呼吸感minmax(240px, 320px) 1fr,左栏在 240–320px 间自适应,超出部分全归右栏240px 1fr 20%——fr 和百分比权重计算方式不同,结果不可预测移动端切单列,媒体查询里重写整条
grid-template-columns
auto-fit 应对简单两栏切换。响应式本质是“换布局”,不是“调参数”。
grid-template-columns: 240px 1fr
@media (max-width: 768px) { grid-template-columns: 1fr; },干净利落gap 和子项 margin,窄屏下它们可能造成横向滚动条white-space: normal、min-width: fit-content 这类默认值,会在你写完 minmax(0, max-content) 后悄悄把它顶回去。动手前先用 DevTools 检查 computed 样式里的 min-width 和 white-space,比反复调 grid-template-columns 有效得多。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











