CSS Grid布局是前端开发中常用的二维布局方案,grid属性作为该布局体系的核心,能够同时控制行和列的排列规则,比传统的flex布局更适合处理复杂的页面排版需求。它主要分为容器属性和项目属性两类,分别对应grid容器和内部子元素的配置。

grid容器基础属性
要使用grid布局,首先需要给父元素设置display: grid,此时该元素就成为grid容器,内部的直接子元素会自动成为grid项目。
定义行列轨道
通过grid-template-columns和grid-template-rows可以分别定义列和行的尺寸,支持固定值、百分比、fr单位等写法。
/* 定义3列,每列宽度100px */
.grid-container {
display: grid;
grid-template-columns: 100px 100px 100px;
/* 定义2行,第一行高度50px,第二行占剩余空间 */
grid-template-rows: 50px 1fr;
gap: 10px; /* 行列之间的间距 */
}
fr单位说明
fr是grid布局特有的单位,代表剩余空间的分配比例,比如grid-template-columns: 1fr 2fr表示两列分别占剩余空间的1/3和2/3。
grid项目属性
grid项目可以通过相关属性控制自身在网格中的位置,不需要调整HTML结构就能改变排列顺序。
项目定位属性
grid-column和grid-row可以指定项目占据的网格区域,支持起始线和结束线的写法。
.item-1 {
/* 占据第1到第3列,第1行 */
grid-column: 1 / 3;
grid-row: 1 / 2;
background-color: #f0f0f0;
}
.item-2 {
/* 占据第3列,第1到第2行 */
grid-column: 3 / 4;
grid-row: 1 / 3;
background-color: #e0e0e0;
}
grid-area简写
grid-area可以一次性设置行起始、列起始、行结束、列结束,顺序为grid-area: row-start / column-start / row-end / column-end。
.item-3 {
/* 等价于 grid-row: 2 / 3; grid-column: 1 / 3; */
grid-area: 2 / 1 / 3 / 3;
background-color: #d0d0d0;
}
完整示例代码
以下是一个完整的grid布局示例,包含容器和项目的全部配置,可直接复制到HTML文件中运行查看效果。
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>grid布局示例</title>
<style>
.grid-box {
display: grid;
/* 3列,每列占1份剩余空间 */
grid-template-columns: repeat(3, 1fr);
/* 2行,第一行60px,第二行自动 */
grid-template-rows: 60px auto;
gap: 15px;
width: 600px;
height: 300px;
border: 1px solid #ccc;
padding: 10px;
}
.grid-item {
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
color: #333;
}
.item-a {
grid-column: 1 / 3;
background-color: #a8d8ea;
}
.item-b {
grid-row: 1 / 3;
grid-column: 3 / 4;
background-color: #aa96da;
}
.item-c {
grid-column: 1 / 2;
background-color: #fcbad3;
}
.item-d {
grid-column: 2 / 3;
background-color: #ffffd2;
}
</style>
</head>
<body>
<div class="grid-box">
<div class="grid-item item-a">项目A</div>
<div class="grid-item item-b">项目B</div>
<div class="grid-item item-c">项目C</div>
<div class="grid-item item-d">项目D</div>
</div>
</body>
</html>
常见使用场景
- 后台管理系统的整体页面布局,快速划分顶部导航、侧边栏、主内容区
- 卡片列表的整齐排列,自动适配不同屏幕尺寸下的列数变化
- 复杂的图文混排页面,不需要浮动或定位就能实现精准的位置控制
CSS_gridgrid_layoutgrid_containergrid_item修改时间:2026-07-19 08:48:23