Making Zigzag CSS Layouts With a Grid + Transform Trick
本文讲解如何使用CSS Grid和Transform属性创建锯齿状布局。首先分析Flexbox方案的缺陷:需要固定容器高度且破坏标签顺序。转而采用两列网格布局,并通过nth-child选择器对偶数项应用translateY(50%)实现交错下移。关键点在于CSS Transform的百分比计算基于元素自身尺寸而非父容器,因此偏移量能自适应元素高度。针对网格间距问题,计算偏移量时需加入一半间距值以对齐行间隙。为解决Transform不改变布局导致的容器溢出,需根据元素高度和间距为容器预留底部内边距。该方案保持源顺序与视觉顺序一致,有利于可访问性,且动画效果需兼容偏好减弱动效的用户。最终布局通过网格结构、Transform偏移和底部填充三个技术点组合实现。