全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 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布局之auto-fit/auto-fill
下一篇 → Flex布局之align-self
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码