用 grid 的 auto-fit 配合 minmax() 实现自适应列数:grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)),配合 gap: 1rem 和 justify-content 控制对齐,无需 JS 或媒体查询即可响应式布局。
卡片数量变化时布局错乱,本质是容器没按需分配空间。用 grid 的 auto-fit 配合 minmax() 能让列数自动伸缩,不写死列数,也不依赖 JS 计算。
在卡片容器上设置:
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))这行代码的意思是:每列最小 280px、最大占满剩余空间(1fr),浏览器会尽可能多地塞下符合宽度的列,空余空间平均分配给所有列。
只设列宽还不够,卡片之间需要留白。直接加:
gap: 1rem注意不要用 margin 模拟间隔,否则最后一行卡片可能右偏——gap 是 Grid 原生安全间距,自动处理边界。
当卡
片不够填满整行时,默认左对齐,右边留白。想居中或分散排列,加:
这个属性只影响行内卡片的水平位置,不影响列数逻辑。
如果希望小屏下强制单列、中屏双列、大屏四列,可以在 minmax() 里做微调,或搭配媒体查询:
minmax(100%, 1fr) 强制单列minmax(300px, 1fr) 自动 2–3 列minmax(280px, 1fr) 最多 4 列实际中往往一版 minmax(280px, 1fr) 就覆盖多数场景,无需过度分段。