css 想实现固定列宽加自适应列宽怎么办_grid-template-columns 固定值加 1fr
发布时间 - 2026-01-23 00:00:00 点击率:次grid-template-columns 混用固定值和 1fr 是标准且推荐的做法;例如三列布局可写为 200px 120px 1fr,其中 1fr 分配容器宽度减去固定列后的可用自由空间,多 fr 按比例分配,需确保父容器设 display: grid 且有明确宽度。
可以,grid-template-columns 混用固定值和 1fr 是标准且推荐的做法,浏览器支持良好,无需 polyfill。
怎么写 grid-template-columns 实现固定列

直接在 grid-template-columns 中按顺序写入具体像素/百分比值和 1fr 即可。例如三列布局:第一列固定 200px,第二列固定 120px,剩余空间给第三列:
grid-template-columns: 200px 120px 1fr;
注意:1fr 不会“填满剩余所有空隙”,它只分配**可用的自由空间**(即容器宽度减去所有固定列宽后的剩余部分);如果还有其他 fr 单位,它们会按比例瓜分该剩余空间。
常见错误:1fr 没生效或列宽异常
多数问题出在父容器或 Grid 本身未满足基本渲染条件:
- 父容器没有设置
width或被内容撑开,导致1fr计算基准为 0 - 忘了给容器声明
display: grid - 设置了
min-width: fit-content或width: max-content等破坏弹性行为的样式 - 子元素设置了
width或min-width强制覆盖 Grid 分配逻辑
更灵活的场景:固定列 + 多个自适应列
比如左侧菜单固定 240px,右侧主内容区再分两栏等宽(各占剩余空间一半):
grid-template-columns: 240px 1fr 1fr;
或者想让中间列优先占更多空间(如 2 份),右侧列占 1 份:
grid-template-columns: 240px 2fr 1fr;
此时注意:所有 fr 的总份数不影响最终宽度,只影响比例;2fr 1fr 和 6fr 3fr 效果完全一样。
和 table / flex 布局的关键区别
Grid 的 1fr 是基于**网格容器的可用内宽**计算,不依赖子项内容长度;而 flex: 1 在 Flexbox 中虽然也常用于自适应,但若子项有固有宽度(如图片、长文本),可能触发最小尺寸限制,导致实际伸缩不如 Grid 可控。
另外,Grid 允许你明确控制行列关系(比如跨列、对齐方式),而纯 flex 往往需要嵌套才能模拟多维布局——这点在固定列+自适应列的后台管理系统中特别明显。
真正容易被忽略的是:当容器本身宽度随视口变化时(比如响应式),1fr 对应的像素值是动态重算的,但固定列(如 200px)始终不变——这意味着小屏下可能出现横向滚动或内容挤压,需要配合 minmax() 或媒体查询做兜底。
# css
# 浏览器
# 区别
# display
# flex
# table
# 自适应
# 多维
# 按比例
# 的是
# 多个
# 管理系统
# 想让
# 可能出现
# 出在
# 它只
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
JavaScript常见的五种数组去重的方式
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
Laravel如何实现事件和监听器?(Event & Listener实战)
网站制作报价单模板图片,小松挖机官方网站报价?
Laravel如何为API生成Swagger或OpenAPI文档
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
使用C语言编写圣诞表白程序
韩国服务器如何优化跨境访问实现高效连接?
如何在云虚拟主机上快速搭建个人网站?
免费视频制作网站,更新又快又好的免费电影网站?
香港服务器部署网站为何提示未备案?
java获取注册ip实例
js代码实现下拉菜单【推荐】
如何在阿里云服务器自主搭建网站?
Thinkphp 中 distinct 的用法解析
如何在云主机上快速搭建多站点网站?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何在阿里云域名上完成建站全流程?
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何在橙子建站中快速调整背景颜色?
Java垃圾回收器的方法和原理总结
Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】
Android中AutoCompleteTextView自动提示
打开php文件提示内存不足_怎么调整php内存限制【解决方案】
如何在阿里云完成域名注册与建站?
如何在IIS中配置站点IP、端口及主机头?
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧
INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】
Laravel怎么调用外部API_Laravel Http Client客户端使用
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
Laravel怎么使用Intervention Image库处理图片上传和缩放
网站建设整体流程解析,建站其实很容易!
Laravel Fortify是什么,和Jetstream有什么关系
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
如何基于云服务器快速搭建个人网站?
laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
轻松掌握MySQL函数中的last_insert_id()
Laravel怎么连接多个数据库_Laravel多数据库连接配置
如何安全更换建站之星模板并保留数据?
WordPress 子目录安装中正确处理脚本路径的完整指南
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
如何快速配置高效服务器建站软件?
如何在IIS7中新建站点?详细步骤解析
上一篇:notepad如何显示目录树
下一篇:notepad++如何删除一行
上一篇:notepad如何显示目录树
下一篇:notepad++如何删除一行

