grid-area属性用于定义网格项位置和跨度,可简写为row-start/column-start/row-end/column-end形式,如2/1/4/3表示跨2行2列;更常用的是结合grid-template-areas通过命名区域布局,如header、sidebar等,使结构清晰易维护。

CSS 中的 grid-area 属性是一个简写属性,用于在一个声明中定义网格项在网格容器中的位置,包括它所跨越的行和列。通过 grid-area,你可以快速指定一个元素占据哪个区域,而无需分别设置 grid-row-start、grid-row-end、grid-column-start 和 grid-column-end。
1. grid-area 的语法结构
grid-area 接受四个值,顺序如下:
- row-start:元素从哪一行开始(可以是行线名称或数字)
- column-start:元素从哪一列开始
- row-end:元素在哪一行结束(可选,默认为 span 1)
- column-end:元素在哪一列结束(可选,默认为 span 1)
例如:
.item {grid-area: 2 / 1 / 4 / 3;
}
表示该元素从第2行开始,第1列开始,跨到第4行前(即占2行),第3列前(即占2列)。
立即学习“前端免费学习笔记(深入)”;
2. 使用命名区域简化布局
更常见且直观的方式是结合 grid-template-areas 使用命名区域。先在容器中用模板定义区域名称,然后在子元素中通过 grid-area 指定名称。
示例:
.container {display: grid;
grid-template-columns: 1fr 2fr;
grid-template-rows: 100px 1fr 50px;
grid-template-areas:
"header header"
"sidebar main"
"footer footer";
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }
.footer { grid-area: footer; }
这样每个元素通过名字绑定到对应区域,代码更清晰易读。
3. 注意事项与技巧
- 确保命名区域在
grid-template-areas中连续,不能出现“L”形等非矩形区域 - 未使用的区域可以用点(.)表示空白
- 同一名称可以在模板中重复出现,表示该元素占据多个格子
- 使用
span关键字可在简写中合并定义,如:grid-area: 2 / 1 / span 2 / span 3;
基本上就这些。掌握 grid-area 能让你更灵活地控制网格布局,尤其配合命名区域时,结构清晰,维护方便。










