css grid布局中的grid-template-columns与grid-template-rows_设置行列尺寸

发布时间 - 2026-01-08 00:00:00    点击率:
grid-template-columns 和 grid-template-rows 是 CSS Grid 布局的骨架,定义容器列宽与行高;值用空格分隔,支持 fr、auto、minmax()、repeat() 等;需注意隐式轨道和 grid-template-areas 的行列数匹配。

grid-template-columns 和 grid-template-rows 是什么

这两个属性是 CSS Grid 布局的骨架,直接定义容器在水平(列)和垂直(行)方向上划分多少轨道、每条轨道多宽/高。它们不控制子元素位置,只搭出网格框架;子元素用 grid-column / grid-rowgrid-area 往里塞。

常用值写法与实际效果差异

值是空格分隔的一组轨道尺寸,顺序对应从左到右(列)或从上到下(行)。关键在于理解单位行为:

  • 1fr 表示“剩余空间均分”,不是固定像素;2fr 1fr 表示第一列占剩余空间的 2/3,第二列占 1/3
  • auto 让轨道收缩包裹内容,但受 minmax() 或父容器约束时可能撑开
  • minmax(200px, 1fr) 是最实用的组合:最小 200px,最大可伸展到 1 份剩余空间
  • repeat(3, 1fr) 等价于 1fr 1fr 1fr,适合等分布局;repeat(auto-fit, minmax(200px, 1fr))) 配合 grid-gap 实现响应式卡片流

容易被忽略的隐式轨道问题

显式声明的行列(通过 grid-template-columns / grid-template-rows)只创建“显式网格”。当子项超出范围(比如第 5 个子项放在第 6 列),浏览器会自动创建隐式轨道——这些轨道默认大小为 auto,常导致高度塌陷或宽度失控。

解决方法是显式设置隐式轨道行为:

grid-auto-columns: 1fr;
grid-auto-rows: minmax(100px, auto);

尤其注意:grid-auto-rows 不会影响显式声明的行高,只管那些“冒出来”的额外行。

和 grid-template-areas 的配合陷阱

如果同时用了 grid-template-areas,那么 grid-template-columnsgrid-template-rows 必须与它行列数严格匹配。例如:

grid-template-areas:
  "header header"
  "main   sidebar";
grid-template-columns: 1fr; /* ❌ 错!需要两个列轨道 */
grid-template-columns: 1fr 200px; /* ✅ 对应两列 */

少写一列,整个 grid-template-areas 失效,退化为无名网格;多写一列则末尾轨道闲置,但布局仍按区域字符串执行。

真正难调试的是:错误不会报错,只是视觉错乱,得靠浏览器开发者工具的网格叠加层去核对行列数是否对齐。


# css  # 浏览器  # 工具  # ai  # 解决方法  # grid布局  # auto  # 字符串  # column  # 隐式  # 的是  # 放在  # 这两个  # 用了  # 报错  # 大可  # 每条  # 关键在于 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何基于云服务器快速搭建网站及云盘系统?  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法  linux top下的 minerd 木马清除方法  如何快速搭建自助建站会员专属系统?  如何撰写建站申请书?关键要点有哪些?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  html如何与html链接_实现多个HTML页面互相链接【互相】  使用C语言编写圣诞表白程序  北京专业网站制作设计师招聘,北京白云观官方网站?  Python面向对象测试方法_mock解析【教程】  如何在宝塔面板创建新站点?  Bootstrap CSS布局之列表  Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程  Linux系统运维自动化项目教程_Ansible批量管理实战  如何用景安虚拟主机手机版绑定域名建站?  黑客入侵网站服务器的常见手法有哪些?  如何在Windows虚拟主机上快速搭建网站?  Python函数文档自动校验_规范解析【教程】  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  Laravel如何优化应用性能?(缓存和优化命令)  如何在IIS中配置站点IP、端口及主机头?  linux写shell需要注意的问题(必看)  Firefox Developer Edition开发者版本入口  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  如何用搬瓦工VPS快速搭建个人网站?  如何在云服务器上快速搭建个人网站?  如何在阿里云服务器自主搭建网站?  如何确认建站备案号应放置的具体位置?  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  做企业网站制作流程,企业网站制作基本流程有哪些?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  原生JS获取元素集合的子元素宽度实例  浅析上传头像示例及其注意事项  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  中山网站推广排名,中山信息港登录入口?  Laravel怎么实现模型属性的自动加密  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  微信小程序 配置文件详细介绍  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel怎么上传文件_Laravel图片上传及存储配置  JS中对数组元素进行增删改移的方法总结  Laravel如何处理和验证JSON类型的数据库字段  Laravel如何实现文件上传和存储?(本地与S3配置)