前端教学4-Flex 布局详解与常用方法
Flex 布局详解与常用方法一、Flex 是什么FlexFlexible Box弹性盒子是 CSS3 提供的一种一维布局模型专门用于在容器中对项目进行排列、对齐和分配空间。一句话概括给父容器加上display: flex子元素就能灵活地排列和对齐。为什么要用 Flex在 Flex 出现之前网页布局靠floatposition缺点垂直居中困难多列等高麻烦顺序调整需改 HTMLFlex 解决了这些痛点是现代网页布局的首选方案。二、核心概念两个角色Flex 布局中只有两个角色┌─────────────────────────────────┐ │ Flex Container容器 │ ← 父元素display: flex │ ┌────┐ ┌────┐ ┌────┐ │ │ │项目1│ │项目2│ │项目3│ │ ← 子元素Flex Item │ └────┘ └────┘ └────┘ │ └─────────────────────────────────┘角色英文设置位置作用容器Container父元素统一管理子元素的排列方式项目Item子元素各自可以有自己的伸缩规则两条轴线理解 Flex 的关键主轴 (main axis) → 方向由 flex-direction 决定 ┌──────────────────────────────────────┐ │ ┌────┐ ┌────┐ ┌────┐ │ 交叉轴 │ │ │ │ │ │ │ │ ( cross │ │ │ │ │ │ │ │ axis) │ └────┘ └────┘ └────┘ │ │ │ └──────────────────────────────────────┘主轴main axis项目排列的方向默认水平交叉轴cross axis与主轴垂直的方向三、容器属性6 个常用1.flex-direction主轴方向决定项目沿着哪个方向排列。.container{display:flex;flex-direction:row;/* 默认水平从左到右 */flex-direction:row-reverse;/* 水平从右到左 */flex-direction:column;/* 垂直从上到下 */flex-direction:column-reverse;/* 垂直从下到上 */}2.justify-content主轴对齐控制项目在主轴方向的对齐与分布。.container{display:flex;justify-content:flex-start;/* 靠左默认 */justify-content:flex-end;/* 靠右 */justify-content:center;/* 居中 */justify-content:space-between;/* 两端对齐首尾贴边 */justify-content:space-around;/* 每个项目左右间距相等 */justify-content:space-evenly;/* 所有间距完全相等 */}可视化效果flex-start: [■][■][■] center: [■][■][■] space-between: [■] [■] [■] space-around: [■] [■] [■] space-evenly: [■] [■] [■]3.align-items交叉轴对齐控制项目在交叉轴方向单行的对齐方式。.container{display:flex;align-items:stretch;/* 拉伸填满默认 */align-items:flex-start;/* 顶部对齐 */align-items:flex-end;/* 底部对齐 */align-items:center;/* 垂直居中 */align-items:baseline;/* 文字基线对齐 */}最经典用法垂直水平双居中.center-box{display:flex;justify-content:center;/* 主轴居中 */align-items:center;/* 交叉轴居中 */}4.flex-wrap是否换行.container{display:flex;flex-wrap:nowrap;/* 不换行挤压项目默认 */flex-wrap:wrap;/* 换行 */flex-wrap:wrap-reverse;/* 反向换行 */}5.align-content多行交叉轴对齐当项目换行了多行控制行与行之间的分布。.container{display:flex;flex-wrap:wrap;align-content:flex-start;/* 多行靠顶部 */align-content:center;/* 多行整体居中 */align-content:stretch;/* 各行拉伸填满默认 */align-content:space-between;/* 行与行两端对齐 */}注意align-content只在多行时生效单行时用align-items。6.flex-flow方向 换行的简写.container{flex-flow:row wrap;/* 等同于 flex-direction: row; flex-wrap: wrap; */}四、项目属性5 个常用1.flex-grow放大比例当容器有剩余空间时项目如何分配多余空间。.item{flex-grow:0;/* 默认不放大 */flex-grow:1;/* 等分剩余空间 */}/* 三个项目第一个占 1 份第二个占 2 份第三个不放大 */.item1{flex-grow:1;}.item2{flex-grow:2;}.item3{flex-grow:0;}2.flex-shrink缩小比例当容器空间不足时项目如何缩小。.item{flex-shrink:1;/* 默认等比缩小 */flex-shrink:0;/* 不缩小 */}3.flex-basis项目基础大小.item{flex-basis:200px;/* 项目主轴方向初始大小为 200px */flex-basis:auto;/* 默认由内容决定 */}4.flex简写最常用.item{flex:1;/* 等同于 flex: 1 1 0% */flex:0 0 200px;/* 不放大不缩小固定 200px */flex:auto;/* 等同于 flex: 1 1 auto */flex:none;/* 等同于 flex: 0 0 auto */}常用取值写法含义场景flex: 1等比分占剩余空间自适应列flex: 0 0 200px固定 200px不伸缩固定宽度的侧栏flex: 2 1 0%放大比例 2某列占两倍空间5.order排列顺序.item1{order:2;}/* 排第二 */.item2{order:1;}/* 排第一数字越小越靠前 */.item3{order:3;}/* 排第三 */默认order: 0可以用负数。6.align-self单个项目的交叉轴对齐覆盖容器的align-items。.item2{align-self:center;/* 只有这个项目垂直居中 */}五、常用布局案例案例 1水平垂直居中最经典divclassbox居中文字/div.box{display:flex;justify-content:center;align-items:center;width:300px;height:200px;background:#2c7a4b;color:white;}案例 2导航栏navclassnavahref#首页/aahref#产品/aahref#新闻/aahref#stylemargin-left:auto;联系我们/a/nav.nav{display:flex;align-items:center;gap:20px;height:60px;padding:0 20px;background:#333;}.nav a{color:white;text-decoration:none;}技巧margin-left: auto可以把联系我们推到最右边。案例 3卡片网格自适应换行divclasscardsdivclasscard卡片1/divdivclasscard卡片2/divdivclasscard卡片3/divdivclasscard卡片4/div/div.cards{display:flex;flex-wrap:wrap;gap:15px;}.card{flex:1 1 200px;/* 最小 200px可伸缩 */height:120px;background:#e3f2e1;border-radius:8px;display:flex;align-items:center;justify-content:center;}案例 4左右分栏侧栏固定主内容自适应divclasslayoutasideclasssidebar侧边栏 200px/asidemainclassmain主内容自适应/main/div.layout{display:flex;gap:20px;}.sidebar{flex:0 0 200px;/* 固定 200px */background:#f0f0f0;}.main{flex:1;/* 占据剩余空间 */background:#e3f2e1;}案例 5图文并排divclassitemimgsrcimg/avatar.pngaltdivh3用户名/h3p个人简介文字.../p/div/div.item{display:flex;align-items:center;gap:15px;}.item img{width:60px;height:60px;border-radius:50%;}六、Flex 速查表容器属性属性常用值作用flex-directionrow/column主轴方向justify-contentcenter/space-between主轴对齐align-itemscenter/stretch交叉轴对齐flex-wrapwrap/nowrap是否换行align-contentcenter/stretch多行交叉轴对齐项目属性属性常用值作用flex1/0 0 200px伸缩简写flex-grow0/1/2放大比例flex-shrink0/1缩小比例flex-basis200px/auto基础大小order整数排列顺序align-selfcenter/flex-start单独对齐七、教学建议先画轴线讲 Flex 之前一定要在黑板上画出主轴和交叉轴学生才能理解justify-content和align-items的区别。动手演示在浏览器开发者工具中勾选/取消 Flex 属性让学生实时看到效果变化比纯理论更直观。从常用入手justify-content、align-items、flex这三个属性覆盖了 80% 的使用场景优先讲透。对比 float用垂直居中这个经典痛点做对比——float 需要 3 行 hackFlex 只需 1 行学生立刻能体会 Flex 的优势。

相关新闻

Abaqus复合材料RVE周期性网格划分与弹性常数计算全攻略

Abaqus复合材料RVE周期性网格划分与弹性常数计算全攻略

做复合材料的多尺度分析,不少同行第一次碰钉子都是在RVE周期性网格这一步。模型看着简单,一个纤维包在基体里面,但真到划分网格、施加周期边界条件、提取E11、E22、E33、G12、G13这些工程常数的时候,才发现处处是坑。这篇我把自己…

2026/10/18 7:46:06 阅读更多 →
安全运营实战:如何整理一套以决策为轴心的防御笔记

安全运营实战:如何整理一套以决策为轴心的防御笔记

有段时间我的防御笔记基本是个摆设:平时想不起来去看,真出问题的时候又翻不到能用的东西。印象最深的一次是业务侧半夜反馈某台机器对外发流量异常,我第一反应是找曾经整理的排查清单,结果只找到一段从工具栏截屏保存下来的页面截…

2026/10/18 7:45:06 阅读更多 →
Unity URP Gamma校正全解析:线性色彩空间与sRGB纹理避坑指南

Unity URP Gamma校正全解析:线性色彩空间与sRGB纹理避坑指南

1. 画面发灰、暗部发紫、高光刺眼时,先别急着调灯光我在实际项目里碰到过太多类似的情况:美术把灯光和材质调了一下午,场景远看还行,近看总觉得"假"——暗部透着一种说不出的灰,阴影边缘发紫,亮部…

2026/10/18 7:45:06 阅读更多 →

最新新闻

多租户系统pytest并发测试改造:隔离方案与踩坑实录

多租户系统pytest并发测试改造:隔离方案与踩坑实录

没做过多租户系统测试的人,很难理解为什么一个看似普通的 pytest 测试套件,跑到企业级多租户项目上会这么难搞。表面上只是“并发跑测试”这一个需求,拆开之后其实是租户隔离、数据生命周期、连接池管理、共享状态治理一整串问题。这篇文章记…

2026/10/18 8:56:23 阅读更多 →
Java JDBC数据源自动生成XML:模板映射与批量输出实战

Java JDBC数据源自动生成XML:模板映射与批量输出实战

简介:这款XML自动生成工具专为Java开发者设计,通过JDBC连接数据库,将查询结果自动映射为符合业务结构要求的XML文档,有效解决手工编写XML时易出错、效率低的问题。资源包共4个文件,以可执行程序为核心,辅以…

2026/10/18 8:56:23 阅读更多 →
告别氛围编程:用Superpowers技能框架与TDD契约驱动构建AI工程纪律闭环

告别氛围编程:用Superpowers技能框架与TDD契约驱动构建AI工程纪律闭环

如果你身边有做开发的同事,最近几个月你一定听过类似的话:"需求我丢给AI了,它写了接口,我还没细看,反正测试能过。"这种状态有个很形象的名字——氛围编程。你负责营造"我在干活"的氛围&#xff0…

2026/10/18 8:56:23 阅读更多 →
逐行精读Chat Template源码:NVIDIA-Nemotron-3.5-Lightning-30B-A3B-8bit思考模式与函数调用设计深度揭秘

逐行精读Chat Template源码:NVIDIA-Nemotron-3.5-Lightning-30B-A3B-8bit思考模式与函数调用设计深度揭秘

【免费下载链接】NVIDIA-Nemotron-3.5-Lightning-30B-A3B-8bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/NVIDIA-Nemotron-3.5-Lightning-30B-A3B-8bit 点击查看 免费下载 本仓库是 mlx-community 将 NVIDIA Nemotron 3.5 Lightning 30B&#x…

2026/10/18 8:56:23 阅读更多 →
HTML网页综合项目实战:从静态架构到组件化调试的完整指南

HTML网页综合项目实战:从静态架构到组件化调试的完整指南

简介:这是一份面向Web初学者与前端入门者的HTML综合实战练习包,聚焦HTML基础语法、元素使用、页面布局和样式控制等核心技能,旨在通过多页面仿站练习解决入门者“会看不会写”的问题。资源以三个递进式网页文件为主线,从index.htm…

2026/10/18 8:56:23 阅读更多 →
Canvas 时间轴插件实现:拖动、缩放与批量渲染的底层硬核拆解

Canvas 时间轴插件实现:拖动、缩放与批量渲染的底层硬核拆解

简介:这是一份基于Canvas实现的时间轴插件,配合jQuery完成交互控制,适用于视频回放、监控录像检索等需要按时间点定位和展示录像片段的场景。插件主要面向具备一定前端基础、希望快速集成时间轴交互的开发者,可直接引入现有项目&a…

2026/10/18 8:55:22 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →