0

0

CSS Grid 实现双层 div 高度同步自适应布局

花韻仙語

花韻仙語

发布时间:2026-02-11 21:17:05

|

411人浏览过

|

来源于php中文网

原创

CSS Grid 实现双层 div 高度同步自适应布局

使用 css grid 的 grid-template-rows: 1fr 1fr 可让上下两个 div 始终保持等高,且随内容动态伸缩,无需 javascript 即可实现响应式高度同步。

在现代 Web 开发中,常需让两个垂直堆叠的容器(如标题栏与内容区)始终保持相同高度——尤其当底部区域内容量大、易因响应式换行导致高度变化时,顶部区域需自动“拉伸”匹配。传统 Flexbox 方案(如 flex-grow 或固定百分比)在此场景下往往失效:flex-grow 仅在父容器有明确高度时才生效,而纯流式内容会突破约束;JavaScript 虽可监听 resize 并手动同步高度,但增加了复杂度与性能开销。

推荐方案:CSS Grid 布局
CSS Grid 天然支持基于轨道(track)的弹性分配,通过将容器设为 display: grid 并定义均分的行轨道,即可实现零 JS 的双向高度同步:

.container {
  display: grid;
  grid-template-rows: 1fr 1fr; /* 两行均分可用空间 */
  margin-bottom: 25px;
}

.b1 {
  background-color: #ff6b6b;
}

.b2 {
  background-color: #ffa07a;
}

/* 重置默认 body 边距,避免干扰 */
body {
  margin: 0;
}
One
DIV B Lorem Ipsum is simply dummy text of the printing and typesetting industry...

核心原理:1fr 表示“剩余空间的 1 份”,1fr 1fr 即将容器总高度平均分为两份,两个子元素各自占据一份——无论内容多少,Grid 自动拉伸二者填满分配的高度。当窗口缩放或文字换行导致 .b2 内容高度变化时,Grid 重新计算轨道尺寸,.b1 同步响应,视觉上始终等高。

⚠️ 注意事项

GNCMS可视化拖拽公司网站模板1.0.0
GNCMS可视化拖拽公司网站模板1.0.0

高端网络建设公司设计类网站模板 IT互联网移动建站类网站源码(带手机版数据同步)本套模板采用现在非常流行的全屏自适应布局设计,且栏目列表以简洁,非常时尚大气。后台支持可视拖拽编辑。 模板特点:1、手工书写DIV+CSS、代码精简无冗余。2、自适应结构,全球先进技术,高端视觉体验。3、SEO框架布局,栏目及文章页均可独立设置标题/关键词/描述。4、后台直接修改联系方式、传真、邮箱、地址等,修改更加方

下载
  • 此方案要求父容器(.container)自身具有明确的高度来源(如由内容撑开、或设置 min-height),否则 1fr 将无参照基准;
  • 若需保留 .b1 的最小内容高度(如避免文字被过度拉伸),可改用 minmax(min-content, 1fr):
    grid-template-rows: minmax(min-content, 1fr) 1fr;
  • 不兼容 IE10 及以下;如需支持旧浏览器,可降级为 JavaScript 方案(见下方精简版):
const [b1, b2] = document.querySelectorAll('.b1, .b2');
const syncHeight = () => b1.style.height = `${b2.offsetHeight}px`;
window.addEventListener('resize', syncHeight);
syncHeight(); // 初始化

总结:CSS Grid 是解决此类“跨元素高度联动”问题的现代、声明式首选方案。它语义清晰、维护成本低,且天然响应式——只要合理运用 fr 单位与网格轨道定义,即可优雅替代冗余脚本,提升页面性能与可读性。

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

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

409

2023.07.18

堆和栈区别
堆和栈区别

堆(Heap)和栈(Stack)是计算机中两种常见的内存分配机制。它们在内存管理的方式、分配方式以及使用场景上有很大的区别。本文将详细介绍堆和栈的特点、区别以及各自的使用场景。php中文网给大家带来了相关的教程以及文章欢迎大家前来学习阅读。

586

2023.08.10

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

520

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

350

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

488

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

5555

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

487

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

214

2023.09.04

2026春节习俗大全
2026春节习俗大全

本专题整合了2026春节习俗大全,阅读专题下面的文章了解更多详细内容。

68

2026.02.11

热门下载

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

精品课程

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

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.3万人学习

CSS教程
CSS教程

共754课时 | 30.3万人学习

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

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号