全部学科
NodeJS全栈
nodejs
Python全栈
python
小程序首页
📅 2026-05-16 8 分钟 ✍️ juanwangdev

Grid布局之minmax()/repeat()

minmax()repeat() 是 Grid 布局中的两个核心函数,用于定义灵活的轨道尺寸。

minmax() 函数

定义轨道尺寸的最小值和最大值范围。

语法

CSS
minmax(min, max)

参数说明

参数说明
min最小尺寸,可以是长度值、百分比、fr、auto 等
max最大尺寸,可以是长度值、百分比、fr、auto、min-content、max-content
CSS
.container {
  display: grid;
  /* 最小100px,最大1fr */
  grid-template-columns: minmax(100px, 1fr);
  /* 最小200px,最大50% */
  grid-template-columns: minmax(200px, 50%);
  /* 最小内容宽度,最大最大内容宽度 */
  grid-template-columns: minmax(min-content, max-content);
}

常见用法

CSS
/* 响应式卡片布局 */
.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
}

repeat() 函数

简化重复轨道的定义,避免冗余代码。

语法

CSS
repeat(次数, 轨道尺寸)

基本用法

CSS
.container {
  display: grid;
  /* 3个等宽列 */
  grid-template-columns: repeat(3, 1fr);
  /* 等价于 */
  grid-template-columns: 1fr 1fr 1fr;

  /* 重复多个尺寸 */
  grid-template-columns: repeat(2, 100px 50px);
  /* 等价于 */
  grid-template-columns: 100px 50px 100px 50px;
}

自动填充模式

CSS
/* auto-fill:尽可能多地填充轨道 */
.container {
  display: grid;
  grid-template-columns: repeat(auto-fill, 200px);
  /* 自动填充200px宽度的列 */
}

/* auto-fit:自动调整轨道 */
.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  /* 响应式自适应 */
}

两者结合使用

CSS
/* 经典响应式网格布局 */
.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 20px;
}

.card {
  background: #f5f5f5;
  padding: 20px;
}
HTML
<div class="container">
  <div class="card">卡片1</div>
  <div class="card">卡片2</div>
  <div class="card">卡片3</div>
</div>

要点总结

  • minmax(min, max) 定义尺寸范围,实现弹性布局
  • repeat(n, size) 简化重复定义
  • repeat(auto-fit, minmax(min, 1fr)) 是响应式网格的标准写法
  • auto-fill 尽可能多填充,auto-fit 自动收缩空轨道

📝 发现内容有误?点击此处直接编辑

← 上一篇 Grid布局之grid-column/grid-row
下一篇 → 结合媒体查询动态切换布局
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库