登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP申请
VIP网盘
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
Web前端入门第 38 问:CSS flex 弹性盒子与 grid 网格布 ...
Web前端入门第 38 问:CSS flex 弹性盒子与 grid 网格布局区别及应用场景
[ 复制链接 ]
届表
2025-6-2 21:55:24
弹性盒子又称为 Flexbox,然而我更喜欢 flex 的叫法。
flex 弹性盒子和 grid 网格布局作为前端开发中两把利器,它们的分界线没那么明显,虽然按照 MDN 的说法 flex 多用于一维布局(行/列),grid 多用于二维布局(行列网格),但实际开发中用多个一维布局也能拼凑出一个完整的二维布局。
grid 主要用来简化 html 结构,在一些二维布局的场景下,使用 flex 时需要更复杂的 html 结构支撑,而使用 grid 则可以尽可能的简化 html 结构。
我的理解 flex 擅长细节上的雕琢,而 grid 更擅长宏观上的调控。
flex 的应用场景
下面细说 flex 的应用场景,及同时使用 grid 会怎样实现。
网页导航
随处可见的网页导航布局,看图:
使用 flex 实现可以是这样的代码结构:
首页
新闻
产品
联系我们
公司简介
关于我们
复制代码
使用 grid 实现的代码结构:
首页
新闻
产品
联系我们
公司简介
关于我们
复制代码
可以看到,在处理一维布局时候,flex 可以说是得心应手,grid 则需要多写一些代码。
flex 的代码长得小清新一样,而 grid 总感觉有点长歪了~
常见的左右布局
再看这种常见的栏目标题布局:
使用 flex 实现:
<h3 >栏目标题</h3>
更多 >
复制代码
使用 grid 实现:
<h3 >栏目标题</h3>
更多 >
复制代码
对比下来,使用 grid 的代码还是多了一行 grid-auto-flow: column;,小清新的 flex 还是要苗条一点~
常见的左左右布局
以百度首页的热搜导航为例:
使用 flex 实现:
以下示例代码巧用了 margin-left: auto; 让元素跑到右侧位置。
我的关注
百度热搜
换一换
复制代码
使用 grid 实现:
我的关注
百度热搜
换一换
复制代码
对比下来,还是 flex 布局更显得小清新一点。
一维布局 flex 与 grid 对比
对比了几种常见的一维列布局,使用 flex 比使用 grid 代码要简洁一点,虽然都能达到想要的效果,当然是代码越少越好了。
gird 应用场景
看完了一维布局的几个应用场景,再看看 grid 的应用场景。
经典的网页分区
页面的整体框架结构无外乎那几种,我们看一种最常见的管理平台的页面分区:
使用 grid 实现:
Header
Aside
Main
Footer
复制代码
使用 flex 实现:
Header
Aside
Main
Footer
复制代码
可以看到虽然 flex 也实现了一样的页面分区效果,但 HTML 的结构确要比 grid 更加复杂,需要嵌套更多的 HTML 结构用来实现复杂的二维布局。
卡片列表
看一种最常见的卡片列表布局:
使用 grid 实现:
1
2
3
4
5
6
7
8
复制代码
使用 flex 实现:
1
2
3
4
5
6
7
8
复制代码
flex 实现的卡片列表必须明确指定一个宽度,这个宽度值需要减去列间距得出;而 grid 实现的这种卡片列表则无需考虑这种计算问题,直接会自动适应。
二维布局 flex 与 grid 对比
在二维布局领域,grid 当之无愧的强大,虽然 flex 也可以实现一毛一样的效果,当不可避免的是代码冗余。
总结
flex 在一维布局中更能发挥优势,grid 在宏观布局或二维布局中优势更加明显。
在不考虑代码冗余的情况下,flex 和 grid 都能在对方领域抢饭碗。
实际开发中,grid 标准浏览器都是在 2017 年之后才实现的,flex 标准则是在 2012 年就开始支持,项目但凡需要兼容老古董浏览器,grid就别想了,赖克宝吃不到小天鹅~~
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
Web
应用
区别
布局
网格
相关帖子
Spring @Component 和 @Bean 的区别与最佳实践
Woody:开源Java应用性能诊断分析工具
Web server failed to start. Port 8080 was already in use. 端口被占用
VibeCoding On Function AI Deep Dive:用 AI 应用生产 AI 应用
Java集合框架实战应用指南
Flutter 布局核心思想
解决大型 PHP 应用中 URL 路由 挑战模块化路由系统
详解智能体应用——网课生成Agent
【URP】[投影Projector]解析与应用
《数据资产管理核心技术与应用》读书笔记- 第七章- 数据权限与安全(一)
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
Spring @Component 和 @Bean 的区别与最佳实践
0
1040
剧拧并
2025-08-29
业界
Woody:开源Java应用性能诊断分析工具
0
628
这帜
2025-08-29
业界
Web server failed to start. Port 8080 was already in use. 端口被占用
0
562
粹脍誊
2025-09-01
安全
VibeCoding On Function AI Deep Dive:用 AI 应用生产 AI 应用
0
42
洫伍俟
2025-09-02
业界
Java集合框架实战应用指南
0
753
颛孙中
2025-09-02
业界
Flutter 布局核心思想
0
1013
别萧玉
2025-09-02
业界
解决大型 PHP 应用中 URL 路由 挑战模块化路由系统
0
508
硫辨姥
2025-09-03
安全
详解智能体应用——网课生成Agent
0
68
乱蚣
2025-09-03
业界
【URP】[投影Projector]解析与应用
0
126
崔竹
2025-09-04
业界
《数据资产管理核心技术与应用》读书笔记- 第七章- 数据权限与安全(一)
0
389
阎一禾
2025-09-04
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
届表
2025-6-2 21:55:24
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
凶契帽
9988
5
氛疵
9988
6
猷咎
9986
7
接快背
9986
8
里豳朝
9986
9
肿圬后
9986
10
段干叶农
9986
查看更多