css网格布局通过grid-column和grid-row实现子元素跨行跨列。先设置容器display: grid定义行列结构,再用grid-column指定元素横向跨度,如1/3或span 2实现跨两列;用grid-row设置纵向跨度,如2/4或span 2跨两行;二者结合可创建大区块,常用于仪表盘或首页布局,提升网页二维布局灵活性与效率。

CSS网格布局(Grid Layout)让网页的二维布局变得非常灵活,尤其适合需要子元素跨行或跨列的复杂结构。通过 grid-column 和 grid-row 属性,可以轻松实现子元素跨越多列或多行。
基本网格容器设置
要使用网格布局,先定义一个容器为 display: grid,并设置行列结构:
.container { display: grid; grid-template-columns: 1fr 1fr 1fr; /* 三列 */ grid-template-rows: 100px 100px 100px; /* 三行 */ gap: 10px; }
让子元素跨列
使用 grid-column 可以指定元素从哪一列开始,到哪一列结束。
例如,让第一个子元素横跨前两列:
.item1 { grid-column: 1 / 3; /* 从第1列开始,到第3列之前(即跨2列) */ }
也可以用 span 简化写法:
.item1 { grid-column: span 2; /* 向右跨2列 */ }
让子元素跨行
使用 grid-row 实现纵向跨越。
比如让某个元素占据第二行和第三行:
.item2 { grid-row: 2 / 4; /* 从第2行开始,到第4行之前(跨2行) */ }
同样可用 span:
.item2 { grid-row: span 2; }
同时跨行和跨列(创建大区块)
在仪表盘、卡片布局中很常见,一个元素占据多个格子。
例如创建一个左上角的大区域:
立即学习“前端免费学习笔记(深入)”;
.hero { grid-column: 1 / 3; /* 横跨两列 */ grid-row: 1 / 3; /* 纵跨两行 */ }
这常用于首页主图、侧边栏整合等场景。
基本上就这些。只要掌握 grid-column 和 grid-row 的起止写法或 span 语法,就能自由控制元素在网格中的范围,布局更高效直观。


