讲师中心 微信公众号
AI工具推荐 视频效率加速

css Grid布局如何设置列宽与行高_通过fr、px等单位自定义尺寸

轻杰酱_3837

轻杰酱_3837

发布时间:2026-02-05 09:05:55

|

666人浏览过

|

来源于php中文网

原创

fr 是剩余空间的份数,如 1fr 2fr 1fr 将剩余空间分为4份;混用 fr 与 px 时 fr 仅分配扣除 px 后的剩余空间;需用 minmax() 或 clamp() 防布局崩溃,设 min-width: 0 防内容撑宽,并注意 auto 不拉伸、align-self 才控制子项填满。

css grid布局如何设置列宽与行高_通过fr、px等单位自定义尺寸

fr 单位到底怎么分配剩余空间

fr 不是固定像素,而是“可用剩余空间的份数”。比如 grid-template-columns: 1fr 2fr 1fr,容器宽度减去所有确定尺寸(如 px、%、auto)占用后,剩下的空间被分成 4 份,三列分别占 1、2、1 份。

常见错误是混用 fr 和 px 后发现列宽“不对劲”——其实是 fr 只分剩余空间,不包含 px 列本身。例如:grid-template-columns: 200px 1fr 1fr,若容器宽 800px,则两个 1fr 共享 600px,各得 300px。

  • 多个 fr 相加为 0?浏览器会报错或退化为 auto
  • minmax(100px, 1fr) 是安全写法:至少 100px,有余量再按份数扩
  • 1fr 和 1fr 1fr 在同一容器中效果不同——前者占全部剩余,后者平分剩余

px、%、auto、fit-content 怎么选

固定列宽用 px 最直观;但响应式场景下,% 易受父容器 padding 或 box-sizing 影响,不如 fr 可靠。auto 会让列宽由内容撑开,适合按钮、标签等短内容;fit-content(200px) 表示“最多 200px,内容少就缩”,比纯 max-content 更可控。

行高同理:grid-template-rows: 40px 1fr auto 中,第一行死定 40px,第二行填剩余,第三行随内容高度自适应。

立即学习“前端免费学习笔记(深入)”;

page-agent 浏览器控制(CDP)
page-agent 浏览器控制(CDP)

使用 page-agent CLI(CDP)控制浏览器;CLI只能通过 GitHub Release 的 .tgz 安装,npm 官方包暂未发布。

下载
  • auto 在 Grid 中不会拉伸,只取内容所需最小高度(除非配合 align-items: stretch)
  • % 在 grid-template-rows 中需父容器有明确高度,否则无效
  • fit-content() 内部值是最大限制,不是目标宽度

设置最小/最大尺寸避免布局崩溃

光写 1fr 很危险:小屏幕下可能把文字挤成一行超长,或图片被压扁。必须搭配 minmax() 或 clamp()。

例如:grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) —— 每列至少 250px,多出空间就均分;容器缩小时自动换行。

  • minmax(min, max) 中,min 必须是确定值(px、em、min-content),max 可为 fr 或 max-content
  • clamp(200px, 1fr, 400px) 在 Grid 中支持度尚可(Chrome 91+、Firefox 95+),但 Safari 对 fr 在 clamp() 中的支持不稳定,慎用
  • 设 min-width: 0 在子项上,可防止 fr 列因内容过长(如 URL)而强行撑宽整列

行高设置容易被忽略的细节

Grid 的行高不像 Flex 那样默认拉伸子项。grid-template-rows 定义的是轨道(track)高度,但子元素是否填满,取决于其自身 height、align-self 和容器的 align-items。

比如你写了 grid-template-rows: 100px 1fr,第二行轨道高为剩余空间,但如果子元素没设 height: 100% 或没触发拉伸行为,它仍可能只显示内容高度。

  • 让子项填满行轨道:设 align-self: stretch(默认值),且子项无 height、min-height 等硬性限制
  • 文字垂直居中?仅靠 align-items: center 不够,需确保行轨道有足够高度,且子项未用 display: inline 等破坏块级行为
  • row-gap 是轨道之间的间距,不计入 grid-template-rows 值内
实际项目里,列宽和行高的“失控”往往不是单位选错,而是没意识到 fr 只分剩余、auto 不拉伸、以及子项自身约束会覆盖轨道定义。动手前先用 outline: 1px solid red 套一层看轨道边界,比猜强得多。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

UpDream
UpDream Hot

一款AI视频创作工具,主要用于哔哩哔哩推出的自研AI视频创作工具,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

相关专题

更多
chrome什么意思
chrome什么意思

chrome是浏览器的意思,由Google开发的网络浏览器,它在2008年首次发布,并迅速成为全球最受欢迎的浏览器之一。本专题为大家提供chrome相关的文章、下载、课程内容,供大家免费下载体验。

2826

2023.08.11

chrome无法加载插件怎么办
chrome无法加载插件怎么办

chrome无法加载插件可以通过检查插件是否已正确安装、禁用和启用插件、清除插件缓存、更新浏览器和插件、检查网络连接和尝试在隐身模式下加载插件方法解决。更多关于chrome相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

5599

2023.11.06

Chrome开启无痕模式
Chrome开启无痕模式

本专题整合了Chrome无痕模式开启相关内容,阅读专题下面的文章了解更多详细教程。

4007

2026.03.24

css中的padding属性作用
css中的padding属性作用

在CSS中,padding属性用于设置元素的内边距。想了解更多padding的相关内容,可以阅读本专题下面的文章。

3052

2023.12.07

flex教程
flex教程

php中文网为大家带来了flex教程合集,Flex是采用Flex布局的元素,称为Flex容器(flex container),简称"容器",它的所有子元素自动成为容器成员,有三个核心概念: flex项,需要布局的元素;flex容器,其包含flex项;排列方向,这决定了flex项的布局方向。php中文网还为大家带来flex的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

10577

2023.06.14

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

120

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

60

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

60

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

40

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.5万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 6.1万人学习

CSS教程
CSS教程

共754课时 | 99万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn