使用fr单位与auto-fill可实现CSS Grid自适应布局。1. fr按比例分配可用空间,如1fr和2fr将容器分为三份;2. repeat(auto-fill, minmax(200px, 1fr))自动填充最小200px、最大1fr的列;3. 容器变宽时子元素扩展,变窄时换行缩小;4. 适用于卡片网格,桌面多列、移动单列;5. 避免minmax内用百分比,auto-fit会拉伸项目。主流浏览器支持,无需媒体查询。
在CSS Grid布局中,让子元素宽度自适应容器并自动填充可用空间,是响应式设计中的常见需求。使用 Fraction单位(fr) 与 auto-fill 关键字结合,可以轻松实现这一效果,无需媒体查询即可适配不同屏幕尺寸。
fr(fraction)表示网格容器中可用空间的“份数”。比如,1fr 表示占据一份空间,2fr 占据两份。当多个列使用 fr 单位时,它们会按比例分配剩余空间。
例如:
grid-template-columns: 1fr 2fr;
这会将容器分为三等份,第一列占1份,第二列占2份。
要实现“尽可能多”地自动排列子元素,可使用 repeat(auto-fill, ...)。它会根据容器宽度自动计算能容纳多少个指定大小的列,并填充空白轨道。
常见写法:
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
这段代码的含义是:
这样,当容器变宽时,项目会自动扩展以填满空间;容器变窄时,项目会换行或缩小,保持响应式布局。
假设你有一个卡片列表,希望在桌面端显示多列,在移动端变为单列。可以这样写:
.container {
display: grid;
grid-gap: 16px;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
}
效果:
这种写法依赖现代浏览器对 Grid 布局的支持,主流浏览器均已支持。但需注意:
基本上就这些。通过 repeat(auto-fill, minmax(..., 1fr)) 的组合,可以高效实现真正自适应的网格布局。不复杂但容易忽略细节。
# css
# 浏览器
# ai
# 响应式布局
# 响应式设计
# 区别
# 排列
# grid布局
# auto
# 自适应
# 列子
# 能多
# 按比例
# 换行
# 这一
# 变窄
# 变宽
# 多个
# 适用于
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
短链接怎么用php递归还原_多层加密链接的处理法【详解】
获取 PHP 文件最后修改时间的正确方法
如何在 Django 中修改用户密码后保持会话不丢失
如何在 Go 项目开发中正确处理本地包导入与远程模块路径的一致性问题
Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】
Python正则表达式实战_模式匹配说明【教程】
PHP主流架构怎么处理表单验证_规则与自定义【技巧】
c# 如何用c#实现一个支持优先级的任务队列
Win11如何开启系统更新 Win11开启系统更新方法【步骤】
Windows10系统怎么查看CPU温度_Win10性能监视器查看硬件数据
Win11怎么关闭触控板_Win11笔记本禁用触摸板快捷键
php删除数据怎么清空表_truncate与delete区别及用法【汇总】
LINUX如何开放防火墙端口_Linux firewalld与iptables开放端口命令【安全配置】
Python配置文件操作教程_JSONINIYAML解析与应用实战
Mac如何修改Hosts文件?(本地开发与屏蔽网站)
Win11怎么关闭定位服务_保护Win11位置隐私设置指南【详解】
Win11怎么更改电脑名称_Windows 11修改计算机名操作指南【步骤】
VSC怎么快速定位PHP错误行_错误追踪设置法【方法】
Win11怎么关闭系统声音_Win11系统提示音静音设置【详解】
php增删改查需要哪些扩展_开启mysqli或pdo扩展方法【说明】
Win11怎么设置ipv4地址_Windows 11固定静态IP地址配置教程【详解】
如何在Golang中实现微服务负载均衡_Golang负载均衡策略与实现示例
Win11怎么更改计算机名_Windows11系统信息重命名设备教程
如何使用Golang实现Web表单数据绑定_自动映射字段到结构体
Go 中 defer 在 goroutine 内部不生效的原因与执行时机详解
Win11怎么设置默认PDF阅读器 Win11修改PDF打开方式【步骤】
如何在Golang中写入JSON文件_保存结构体数据到文件
Win11开机速度慢怎么优化_Win11系统启动加速设置指南【方法】
c++ try_emplace用法_c++ map高效插入数据
PHP的FastAdmin架构适合二次开发吗_特点分析【介绍】
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何使用Golang管理跨项目依赖_Golang多模块项目依赖实践
如何在 Go 结构体中正确初始化 map 字段
Go语言中slice追加操作的底层共享机制详解
本地php环境出现502错误_nginx或apache502badgateway解决技巧【解答】
php命令行怎么运行_通过CLI模式执行PHP脚本的步骤【说明】
Win11蓝牙开关不见了怎么办_Win11蓝牙驱动丢失修复教程【方法】
c++的STL算法库find怎么用 在容器中查找指定元素【实用教程】
如何使用Golang搭建本地API测试环境_快速验证接口功能
Win11怎么更改盘符_Win11磁盘管理修改驱动器号【步骤】
Win11如何设置省电模式 Win11开启电池节电功能【优化】
MySQL 中使用 IF 和 CASE 实现查询字段的条件转换
Python代码测试策略_质量保障解析【教程】
Flask 表单数据通过 SMTP 发送邮件的完整实现教程
Mac如何整理桌面文件_Mac使用堆栈功能一键整理
如何将竖排文本文件转换为横排字符串
如何使用Golang实现路由参数绑定_使用Mux和Request解析路径变量
Win11怎么设置默认邮件应用_Windows11应用关联Mail设置
Windows蓝屏错误0x0000001E怎么修复_KMODEEXCEPTIONNOTHANDLED排查
如何在Golang中实现并发消息队列消费者_Golang channel消息消费实践
2025-11-20
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。