grid-column 可让网格项横跨多列,支持线号(如 2/5)和跨距(如 2/span 3)两种写法,需父容器设 display: grid 并定义列;常用写法包括 1/-1(满行)、span 2(自动起始跨2列)等,超出显式列数时触发隐式网格,可由 grid-auto-columns 控制宽度。
用 grid-column 可以让一个网格项横跨多列,关键在于指定起始线和结束线(或使用跨距语法)。
grid-column 是简写属性,等价于 grid-column-start 和 grid-column-end。它支持两种常用形式:
grid-column: 2 / 5; 表示从第 2 条列线开始,到第 5 条列线结束(即跨越第 2、3、4 列)grid-column: 2 / span 3; 表示从第 2 条列线开始,向右跨越 3 列(覆盖第 2、3、4 列)只有当父元素设置了 display: grid 并定义了列(如 grid-template-columns),grid-column 才会生效:
.container {
display: grid;
grid-template-columns: repeat(6, 1fr); /* 6 列等宽 */
}子项才能用 grid-column: 1 / -1; 横跨所有列(-1 表示最后一根列线)。
实际开发中常用几种简洁表达:
grid-column: 1 / -1; —— 跨满整行(从第一列线到最后一列线)grid-column: span 2; —— 自动起始,向右跨 2 列(不指定起点,默认按顺序填)grid-column: 3 / span 4; —— 从第 3 列开始,跨 4 列(需确保总列数足够,否则会溢出或自动扩展)如果
跨列超出显式定义的列数(比如 grid-template-columns: 100px 100px; 却写 grid-column: 1 / 5;),浏览器会创建隐式列,宽度默认为 auto。如需控制,可配合 grid-auto-columns:
.container {
grid-auto-columns: 1fr;
}这样跨列超出部分也会按比例分配宽度。