前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
  • AI 助手随时提问,即时解析
  • AI 模拟面试模拟真实面试 + 报告
  • AI 知识地图串起全站知识点
  • AI 定制路线按你的简历现排
AI 热点
旧版
首页程序员面试题库CSS Grid grid-area简写同时指定行列
CSSGrid 布局

grid-area 的四个位置参数分别指定什么?

grid-area 的四个位置依次是行起点、列起点、行终点、列终点。它也能只写一个命名区域名称,前提是容器定义了相应区域或边界线;数字表示网格线,不是格子的编号。

前端进阶之旅 · 一题精讲更新于 2026.09.29
CSS#Grid 布局#CSS Grid
先看核心答案读代码示例
理解线索

四条边界线

  1. 行起点项目上边界对应的行线
  2. 列起点项目左边界对应的列线
  3. 结束线第三、四段分别控制下边和右边

grid-area: 1 / 1 / 3 / 3 覆盖两行两列,因为起止网格线之间才是轨道。

核心回答

先记住这个答案

grid-area 用在网格项目上时,可一次指定四条边界线:row-start / column-start / row-end / column-end。例如 1 / 1 / 3 / 3 从第 1 条行线和列线开始,到两轴的第 3 条线结束,占两行两列。它还可以写成 grid-area: main,引用容器定义的命名区域;两种语法看着相近,含义却不同。

  • 四段顺序是行始、列始、行终、列终
  • 数字指定网格线而非格子
  • span 表示跨过多少条轨道
  • 单个名称可引用命名区域

用四条线围住一块区域

Grid 的轨道是线与线之间的空间。两列网格有三条列线,别把「第 3 条线」理解成「第 3 列」。做一个覆盖左上角四格的卡片时,起点写 1,终点写 3,区域正好跨两个轨道。行和列的顺序也容易记错:前两段是两轴的起点,后两段才是两轴的终点。

把卡片放到左上角四格CSS
.board {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(3, 80px);
}
.card {
  grid-area: 1 / 1 / 3 / 3;
  /* 第 1 到第 3 条线之间,覆盖 2 行 2 列 */
}

如果将第三段写成 span 2,含义是从行起点跨两条行轨,而不是指定第 2 条行线。grid-area: 1 / 1 / span 2 / span 2 在这个例子里会得到同样区域,但当起点改变时,更容易看出它表达的是跨度。

名称形式与数字形式

容器用 grid-template-areas 写了 "main main" 等区域字符串后,项目可写 grid-area: main。浏览器会使用该区域对应的四条边界线定位。项目不关心区域在第几行,响应式断点修改区域图时,仍可使用同一个名称。

若没有定义区域,单个自定义名称还有命名线解析规则;因此排查定位错误时,应检查容器的区域图与线名,不能简单地认为任何字符串都能创建区域。grid-area 只指定项目的位置,不负责给容器创建轨道模板。

四值写法的顺序是行起点、列起点、行终点、列终点,斜杠把四条边界分开。不要按“左、上、右、下”这样的盒模型顺序记。比如 grid-area: 2 / 1 / 4 / 3 表示从第二行线到第四行线、第一列线到第三列线,覆盖两行两列。若只写区域名,则由已定义的命名区域解析,不需把四个线号展开。

回答前,多想一步

容易答错的地方

说四段是上、下、左、右
真实顺序是行起点、列起点、行终点、列终点。把第二、第三段对调后,项目可能跑到意料之外的位置。
把终点线算作一格
起止线围出的是中间轨道,终点线不额外代表一格。从线 1 到线 3 跨两格。
试着用自己的话回答

面试官还会怎么问?

只写 grid-area: main 时发生什么?

它会按名称寻找对应边界线;最常见的情况是容器用 grid-template-areas 定义了 main 区域。

grid-area 和 grid-row 有什么关系?

grid-row 只管行轴的起止线,grid-area 同时覆盖行轴与列轴的四个定位属性。

项目指定的终点超出显式网格会怎样?

Grid 会按需要创建隐式轨道,不会因为超出模板就简单丢弃项目;隐式轨道尺寸由自动轨道属性控制。

从一道题,走向一组知识

把知识连起来

Grid 布局

写了 grid 简写后,为什么隐式轨道设置会失效?

grid 是容器级简写,和用于项目定位的 grid-area 不是一回事。

Grid 布局

多个 Grid 项目能使用同一个命名区域吗?

命名区域可供 grid-area 引用,多个项目使用同一名称会重叠。

参考资料

  • CSS:Grid 布局参考资料

示例用于理解所注明的运行环境与边界;延伸学习可结合原文中的更多案例。

本题目录
  1. 先记住这个答案
  2. 用四条线围住一块区域
  3. 名称形式与数字形式
  4. 容易答错的地方
  5. 面试官还会怎么问
  6. 把知识连起来
读懂,再试着讲出来

先看核心答案,再读代码。最后展开追问,检查自己有没有遗漏边界。

试着回答追问
浏览全部面试题理解原理,也关注真实的使用场景。回到顶部 ↑