卡片列表用弹性换行,最后一行只有两张卡,却被均匀撑满整行。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,主轴对齐方式设置为两端或均匀分布,最后一行剩余空间被分配到卡片之间,卡片本身宽度也被拉开。
碰到「flex 换行对齐」这类问题,我习惯先把当前配置原样备份一份,改坏了立刻换回来,不用现场推。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
.list { display: flex; flex-wrap: wrap; gap: 16px; justify-content: flex-start; }
.list .card { width: calc((100% - 32px) / 3); }
权限不要一口气开到最大,先加到够用再往上试,范围小才好收。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
具体做法是,改用固定间距对齐;给最后一行补占位元素;或改用网格布局。
最后用这个标准收尾,最后一行卡片保持原宽度并左对齐。