使用 grid-template-columns 配合 repeat(auto-fit, minmax(200px, 1fr)) 可创建智能响应式网格,容器宽度变化时自动调整列数并均分空间,适合卡片、图库等布局,无需媒体查询即可实现自适应效果。
使用 CSS 的 grid-template-columns 配合 repeat() 和 auto-fit,可以轻松创建响应式网格布局。当容器宽度变化时,网格项会自动换行或拉伸,始终保持合适的列数。
auto-fit 会自动调整列的数量,把空的多余轨道“折叠”掉,并尽可能扩展已有项目(前提是允许拉伸)。
常用写法:.container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
这表示:创建尽可能多的列,每列最小 200px,最大为 1fr(均分剩余空间)。
理解以下几个部分对掌握 auto-fit 很重要:
最小 200px,最大 1fr(可扩展)适合用于卡片布局、图库、产品列表等需要自适应的场景。
.gallery {
display: grid;
gap: 16px;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}
在手机上可能只显示一两列,在桌面则铺满更多列,无需媒体查询也能实现响应式。
使用 auto-fit 时注意以下几点:
基本上就这些。auto-fit 让网格更智能,减少响应式代码量,是现代 CSS 布局中的实用技巧。不复杂但容易忽略细节。