
本文介绍在不依赖网格子项的前提下,仅通过 background 渐变技巧为 css grid 的奇数列(第1、3、5…列)统一着色的方法,适用于空网格容器的视觉分区需求。
本文介绍在不依赖网格子项的前提下,仅通过 background 渐变技巧为 css grid 的奇数列(第1、3、5…列)统一着色的方法,适用于空网格容器的视觉分区需求。
要为一个完全为空的 CSS Grid 容器(即内部没有
核心原理如下:
- 水平渐变 linear-gradient(90deg, #ccc 50%, transparent 0) 创建一个宽度为 50% 的灰色色块 + 50% 透明区域,构成单个“灰-透”单元;
- 通过 background-size: calc(200% / 27) 将该单元缩放到 总宽度的 2/27(即覆盖 2 列的宽度),从而让每个“灰-透”单元恰好对应 1 列灰 + 1 列透明;
- 默认 background-repeat: repeat 自动水平铺满,最终实现第1、3、5…(所有奇数)列呈现灰色,偶数列保持透明(显示父背景或默认色)。
✅ 正确代码示例:
.grid {
display: grid;
grid-template-columns: repeat(27, minmax(0, 1fr));
grid-template-rows: repeat(6, minmax(0, 1fr));
height: 50rem;
width: 50rem;
/* 关键:奇数列灰色条纹背景 */
background: linear-gradient(90deg, #ccc 50%, transparent 0) 0 / calc(200% / 27);
}
⚠️ 注意事项:
- transparent 比 #0000 更规范(后者非标准写法,应避免);
- calc(200% / 27) 中的 200% 是关键:它确保渐变单元宽度 = 2 × (100% / 27),即覆盖两列,使灰区始终对齐奇数列;
- 若需偶数列着色,只需将 #ccc 与 transparent 位置互换;
- 此法完全不干扰网格布局逻辑,不影响后续插入子元素的定位与样式。
该方案轻量、无 JS、兼容现代浏览器(Chrome 26+、Firefox 16+、Safari 6.1+),是空网格列着色的最佳实践。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











