Grid负责页面整体区域划分,Flex处理组件内部对齐;例如仪表盘中Grid定义 header、sidebar、content 布局,Flex实现卡片内容居中与导航滚动,响应式下二者协同优化显示。
在现代网页布局中,Flexbox 和 Grid 是最常用的两种 CSS 布局方式。它们各有优势:Flexbox 擅长一维布局(行或列),适合内容对齐和动态伸缩;Grid 则擅长二维布局(行和列同时控制),适合复杂网格结构。将两者结合使用,可以发挥各自优势,实现更灵活、响应式更强的页面布局。
虽然 Grid 能处理大多数布局需求,但在某些场景下,结合 Flexbox 更加高效:
我们构建一个典型的管理后台仪表盘界面,包含顶部导航、侧边栏、主内容区中的多个统计卡片。
示例结构:
导航栏 菜单用户统计 订单统计 访问量 转化率
CSS 使用 Grid 划分整体结构
.dashboard {
display: grid;
grid-template-areas:
"header header"
"sidebar content";
grid-template-rows: 60px 1fr;
grid-template-columns: 200px 1fr;
height: 100vh;
}
.header { grid-area: header; background: #333; color: white; padding: 0 20px; }
.sidebar { grid-area: sidebar; background: #f4f4f4; }
.content {
grid-area: content;
padding: 20px;
display: grid;
grid-template-columns: rep
eat(auto-fit, minmax(250px, 1fr));
gap: 20px;
background: #eaeaea;
}
卡片内部使用 Flex 布局对齐内容
.card {
background: white;
border-radius: 8px;
padding: 20px;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
}
.card h3 {
margin: 0 0 10px;
}
.card p {
margin: 0;
color: #666;
}
这里,Grid 完成了整个页面的宏观布局,而每个 .card 内部通过 Flex 实现了文字垂直居中、图标与文本整齐排列的效果,简洁且自适应。
在小屏幕上,我们可以调整 Grid 结构,并利用 Flex 让某些区域横向滚动或堆叠排列。
@media (max-width: 768px) {
.dashboard {
grid-template-areas:
"header"
"sidebar"
"content";
grid-template-rows: 60px auto 1fr;
grid-template-columns: 1fr;
}
.content {
grid-template-columns: 1fr; / 卡片变为单列 /
}
/ 导航项横向滚动 /
.header {
display: flex;
justify-content: flex-start;
overflow-x: auto;
white-space: nowrap;
}
}
此时,顶部导航变成水平滚动的 Flex 容器,避免文字换行或挤压,提升移动端体验。
Flexbox 与 Grid 并非互斥,而是互补。实践中建议:
基本上就这些,掌握这种“Grid 主结构 + Flex 微调”的模式,能让你的布局更清晰、维护更方便。
# css
# ai
# 响应式设计
# 排列
# 垂直居中
# 网页布局
# overflow
# grid布局
# 堆
# flex
# 列子
# 自适应
# 尤其是
# 多个
# 各司其职
# 两种
# 但在
# 我们可以
# 能让
# 各有
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Windows如何查看和管理已安装的字体?(字体文件夹)
零基础学会Python自动化办公_高效处理Excel与PDF文档
如何使用Golang操作指针变量_Golang解引用与赋值实践
如何在Golang中捕获结构体方法错误_Golang方法返回error处理实践
Win11怎么打开注册表_Windows 11注册表编辑器启动命令【步骤】
C#怎么使用委托和事件 C# delegate与event编程方法
如何使用Golang实现文件加密_Golang crypto 文件加密示例
Win11如何关闭游戏模式 Win11禁用Xbox Game Bar录制【优化】
Win10电脑怎么设置休眠快捷键_Windows10电源按钮功能定义
Golang如何避免指针逃逸_Golang逃逸分析与堆栈优化策略
XML的“混合内容”是什么 怎么用DTD或XSD定义
Windows电脑如何进入安全模式?(多种按键方法)
php485返回数据不完整怎么办_php485数据分包重组处理方法【教程】
Win11键盘快捷键大全_Windows 11常用高效快捷键汇总【技巧】
Mac的“调度中心”与“空间”怎么用_Mac多桌面高效管理【技巧】
mac怎么查看wifi密码_MAC查看已连接WiFi密码方法【技巧】
如何使用Golang包导出规则_控制函数和变量可见性
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
php打包exe如何加密代码_防反编译保护方法【技巧】
Win11怎么更改系统语言_Win11中文语言包下载与安装【指南】
Win11色盲模式怎么开_Win11屏幕颜色滤镜设置【关怀】
如何在 Pandas 中按元素交集合并两列字符串
Win11怎么关闭开机声音_Win11系统启动提示音静音【教程】
Win11如何设置计划任务 Win11定时执行程序教程【详解】
Python性能剖析高级教程_cProfileLineProfiler优化案例解析
c++ stringstream用法详解_c++字符串与数字转换利器
Win11怎么开启剪贴板历史记录_Windows11 Win+V键使用技巧
如何在 Django 中安全修改用户密码而不使会话失效
Win11 C盘满了怎么清理 Win11磁盘清理和存储感知使用教程【新手必看】
Win10如何备份注册表_Win10注册表备份步骤【攻略】
Win11怎么设置屏保_Windows 11屏幕保护程序开启与设置【详解】
Windows10如何更改任务栏高度_Win10解除锁定调整大小
Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康
Windows 10怎么隐藏特定更新补丁_Windows 10使用微软官方工具wushowhide.diagcab
静态属性修改会影响所有实例吗_php作用域操作符下静态存储【教程】
Python lxml的etree和ElementTree有什么区别
Win11怎么修复系统文件_使用sfc命令修复Win11系统【技巧】
php增删改查需要哪些扩展_开启mysqli或pdo扩展方法【说明】
如何使用Golang开发简单的聊天室消息存储_Golang WebSocket数据持久化方法
mac怎么安装adb_MAC配置Android ADB开发环境【详解】
如何用正则表达式精确匹配最多含一个换行符的起止片段
Windows蓝屏错误0x00000018怎么处理_驱动初始化错误解决
Mac的访达(Finder)怎么用_Mac文件管理入门教程【详解】
MAC如何修改默认应用程序_MAC文件后缀关联设置与打开方式更改【教程】
Win11如何设置自动关机 Win11定时关机命令使用教程【技巧】
Python多进程教程_multiprocessing模块实战
Win11怎么禁用键盘自带键盘_Win11笔记本禁用内置键盘方法【教程】
如何使用Golang benchmark测量函数延迟_统计执行耗时
Win11怎么更改盘符_Win11磁盘管理修改驱动器号【步骤】
Win11怎么设置指纹解锁 Win11笔记本录入指纹登录【教程】
2025-11-24
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。