马上教你用!✨ 假设你有这样一个需求: 只需在父元素加两行 CSS 就能实现: 下面详细解释这行代码的意思: 这是 CSS Grid 布局里定义列宽的常用写法,逐个拆解如下: ❝ ❞ ❝ 🧱 「尽可能多地填充列,即使没有内容也会 “占位”」 ❞ ❝ 🧱 「自动适应内容,能合并多余空列,不占位」 ❞ 假设容器宽度能容纳 10 个 200px 的卡片,但你只放了 5 个卡片: caniuse.com/?search=aut… 「希望每行 “有多少内容就撑多宽”,用 「希望 “固定列数 / 有占位”,用
auto-fill 和 auto-fit。
🧩 基础概念
/* 父元素 */
.grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}
/* 子元素 */
.item {
height: 200px;
background-color: rgb(141, 141, 255);
border-radius: 10px;
}grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));1.
grid-template-columns
2.
repeat(auto-fit, ...)
repeat 是个「重复函数」,表明后面的模式会被重复多次。auto-fit 是一个特殊值,意思是:「自动根据容器宽度,能放下几个就放几个」,每列都用后面的规则。
3.
minmax(200px, 1fr)
minmax 也是一个函数,意思是:「每列最小 200px,最大可以占 1fr(剩余空间的平分)」
1fr),让内容填满整行。4. 综合起来
总结一句话:
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
让你的网格卡片「最小 200px,最大自动填满一行」,自动适应任何屏幕,布局永远美观!这里还能填
auto-fill,和 auto-fit 有啥区别?🥇 auto-fill 和 auto-fit 有啥区别?
1.
auto-fill
2.
auto-fit
👀 直观对比
auto-fill 会保留 10 列宽度,5 个卡片在前五列,后面五列是 “空轨道”。auto-fit 会折叠掉后面五列,让这 5 个卡片拉伸填满整行。
👇 Demo 代码:
<h2>auto-fill</h2>
<div>
<div>item1</div>
<div>item2</div>
<div>item3</div>
<div>item4</div>
<div>item5</div>
</div>
<h2>auto-fit</h2>
<div>
<div>item1</div>
<div>item2</div>
<div>item3</div>
<div>item4</div>
<div>item5</div>
</div>.grid-fill {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 16px;
margin-bottom: 40px;
}
.grid-fit {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 16px;
}
.grid-fill div {
background: #08f700;
}
.grid-fit div {
background: #f7b500;
}
.grid-fill div,
.grid-fit div {
padding: 24px;
font-size: 18px;
border-radius: 8px;
text-align: center;
}兼容性

🎯 什么时候用 auto-fill,什么时候用 auto-fit?
auto-fit」
适合卡片式布局、相册、响应式按钮等。auto-fill」
列如表格、日历,或者你希望网格始终对齐,即使内容不满。📝 总结
🌟 小结
-
auto-fill更像 “占位”,auto-fit更像 “自适应” -
推荐大部分响应式卡片用 auto-fit -
善用 minmax配合,让列宽自适应得更自然

















- 最新
- 最热
只看作者