Flexbox

iOS 上的 FlexBox 布局 为什么要了解 FlexBox?最近时不时的听到关于 FlexBox 的声音,除了在 Weex 以及 React Native 两个著名的跨平台项目里有用到 FlexBox 外,AsyncDisplayKit 也同样引入了 FlexBox 。先说说 iOS 本身提供给我们 2 种布局方式:Frame,直接设置横纵坐标,并指定宽高。Auto Layout,通过设置相对位置的约束进行布局。Frame 没... 阅读详情

🧩 一、什么是 Flexbox

Flexbox 全称是 Flexible Box Layout(弹性盒子布局)。

👉 它是一种 一维布局模型,用于在一行或一列上高效地排列、对齐和分配空间。

用一句话说:
Flexbox 让你可以很轻松地让元素水平垂直居中、自动对齐、按比例分布,而不用写很多复杂的 float、position 或 margin。

二、基本结构

一个 Flex 布局至少包含两部分:

<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
</div>
.container {
  display: flex; /* 关键!让这个容器成为弹性盒子 */
}

三、Flexbox 的两条轴线

Flexbox 的所有对齐、方向都基于两条轴:

主轴(main axis):默认是水平方向(从左到右)

交叉轴(cross axis):垂直方向(从上到下)

可以通过 flex-direction 改变主轴方向。

.container {
  display: flex;
  flex-direction: row; /* row | row-reverse | column | column-reverse */
}

四、常用属性汇总

1. 容器属性(作用于父元素)

属性作用
display: flex开启弹性布局
flex-direction主轴方向(横排或竖排)
flex-wrap是否换行
justify-content主轴对齐(左右分布)
align-items(一行)交叉轴对齐(上下分布)
align-content(多行)多行内容在交叉轴的分布
flex-flowflex-direction和flex-wrap合起来

align-items 和align-content

属性值含义效果示意
flex-start从主轴起点开始对齐(默认值)🔳🔳🔳□□□□
flex-end从主轴终点开始对齐□□□□🔳🔳🔳
center居中对齐□🔳🔳🔳□
space-between两端对齐,中间平均分配间距🔳—🔳—🔳
space-around每个元素两侧间距相等(首尾留一半空隙)½🔳—🔳—🔳½
space-evenly所有间距完全相等(包括首尾)🔳—🔳—🔳—🔳

示例:

.container {
  display: flex;
  justify-content: center;  /* 水平居中 */
  align-items: center;      /* 垂直居中 */
}

👉 这两行是 最常用的居中写法!

2. 项目属性(作用于子元素)

属性作用
flex-grow放大比例(多余空间怎么分配)
flex-shrink缩小比例
flex-basis初始大小
flex组合简写:flex: grow shrink basis;
align-self单独控制某个子项的对齐
order顺序 (… -1, 0 (default), 1, …)

align-self 的属性

属性值含义说明
auto默认值继承父容器的 align-items 值
flex-start顶部对齐(交叉轴起点)相当于“靠上”或“靠左”
flex-end底部对齐(交叉轴终点)相当于“靠下”或“靠右”
center居中对齐在交叉轴上居中
baseline文字基线对齐以文字底线对齐(常用于文本)
stretch拉伸填满(默认)如果项目未设置高度,会被拉伸以占满交叉轴空间

示例:

.item:nth-child(1) {
  flex: 1; /* 自动分配剩余空间 */
}
.item:nth-child(2) {
  flex: 2; /* 占的空间是前一个的两倍 */
}

五、几个典型布局案例

1. 元素水平垂直居中

.container {
  display: flex;
  justify-content: center;
  align-items: center;
}

2. 左右布局,中间自适应

.container {
  display: flex;
}
.left, .right {
  width: 200px;
}
.middle {
  flex: 1; /* 自动填满剩余空间 */
}

3. 平均分布(导航栏常用)

.nav {
  display: flex;
  justify-content: space-between;
}

六、Flexbox 的优点

✅ 简化布局逻辑(不用 float、position)
✅ 自适应能力强(响应式更容易)
✅ 居中对齐极其方便
✅ 动态分配空间

七、可视化学习推荐

你可以用这些工具 直观地练习 Flexbox:

🌐 Flexbox Froggy(游戏学 Flex)

🧩 CSS Tricks Flexbox 完整指南

🧱 Flexbox Visual Playground

Android Flexbox Layout开发实战指南 Android弹性布局(Flexbox)是一种基于Flexbox CSS布局的模型,使得开发者能够以更加灵活的方式在Android应用中布局子视图。它不同于传统的线性布局和相对布局,弹性布局允许子视图按照容器的轴线方向进行灵活排列,无需关心子视图的尺寸和顺序。主轴的确定依赖于flex-direction属性的值。例如,当flex-direction设置为row时,主轴水平从左至右;当设置为column时,主轴垂直从上至下。理解这一点对于后续布局中对齐和排列Flex项目至关重要。 阅读详情

相关推荐

EtherCAT简介

EtherCAT(EtherNet Control Automation Technology)是由德国公司BECKHOFF公司于2003年提出的实时工业以太网技术。其具有高速、高数据有效率的特点,支持多种设备的连接拓扑结构。从站节点使用专用的控制芯片,例如:microchip公司的Lan9252、BECKHOFF公司的ET1100等ESC(EtherCAT slave controller)芯片。主站的搭建方式有很多,例如:开源主站IGH、SOEM、商业化主站TwinCAT等。

m0_73482095的博客 1万+

关于CSS 中Flexbox 教程

Flexbox 是一种用于排列和定位元素的 CSS 布局模型。它基于弹性盒子(flex container)和弹性子元素(flex items)的概念,使得我们能够轻松地创建复杂的网页布局。Flexbox 提供了一种强大且简洁的方式来定义元素之间的关系,使得页面布局更加灵活。Flexbox 是一种强大的 CSS 布局模型,为网页设计带来了更多的灵活性和响应性。通过本教程的介绍,您应该可以了解 Flexbox 的基本概念和常用属性,并能够利用 Flexbox 快速构建复杂的网页布局。

weixin_73032215的博客 2293

xsens IMU配置

1.安装驱动 sudo apt-get update sudo apt-get install ros-kinetic-xsens-driver 2.配置IMU 设置输出四元数,加速度、角速度、地磁 cd /opt/ros/kinetic/lib/xsens_driver python mtdevice.py --configure "oq,aa,wr,mf" 3.启动IMU roslaunch xsens_driver xsens_driver.launch 转(https://www.cnblo

qq_41585680的博客 2325

Flexbox布局详解

Flexbox布局详解

qq_43733543的博客 1610

帆软FineBI考试题

Flint 补录表,有批次删除功能。在分析主题内添加数据时能够选择批量添加数据。插件安装过程中有报错提示需要下载 Fine I for Excel 运行环境进行修复,修复完毕后重新安装插件。图例显示支持自定义设置,且图例标题支持隐藏显示。finebi中的指标如果想进行维度区间/真的自定义分组,不能直接拖拽到组建区域中需要先转化为维度方可进行指标分组。excel报表不支持分页。

Davina_yu的博客 1601

Qt (高仿Visio)流程图组件开发(一) 效果展示及基本开发框架构思

最近因为工作原因需要使用Qt开发一个类似于Visio的流程图组件,需满足基本的流程图功能,图元类型可自定义扩展,不同图元存有各类自定义数据,可以保存为xml文件,可以读取xml文件生成流程图等等。

qq_43793182的博客 1万+

【免费下载】 Flexbox-Labs:可视化Flexbox布局利器

在Web前端开发中,CSS Flexbox布局因其灵活性而受到广大开发者的青睐。Flexbox-Labs正是这样一个利用CSS Flexbox特性的强大工具,它能帮助开发者以直观的方式创建和管理响应式布局。 ## 项目介绍 Flexbox-Labs是一个可视化工具,专注于帮助用户通过CSS Flexbox来创建布局。它提供了一个直观的界面,能够实时显示调整参数后的效果,使得布局设计和学习变得更...

gitblog_00567的博客 1332

移远EC800M CAT1模块HTTP POST实战:从AT指令到OneNet平台数据上报(附STM32代码)

本文详细介绍了移远EC800M CAT1模块通过AT指令实现HTTP POST数据上报到OneNet平台的完整流程,包含STM32实战代码。内容涵盖PDP上下文激活、HTTP服务配置、JSON数据包构建等关键技术要点,并提供硬件连接、状态机设计和错误处理等实用方案,助力开发者快速实现物联网设备稳定数据传输。

weixin_42565652的博客 507

Flexbox 布局

概述 在 flexbox 出现之前,布局的主力一直是 float 和 position,虽然他们表现得很是优秀,但是对于一些复杂或灵活的布局它们还是有些能力不及。比如下面这两种要求: 剩余宽度的自动分配 分布对齐(现在已经有了独立的CSS Box Alignment Module) 为了能更好的解决这些问题,新的布局技术 flexbox 应时而生,当然其诞生也并非一帆风顺,而是经历了两次浴火焚身,最终才得以带领布局走向华丽新篇。 和从前的布局不一样,flexbox 的布局由两层结构组成,父元素设置.

嘿嘿 1647

ArcMap学习笔记(三)地图数字化

地图数字化前言地图数字化实现步骤1.加载地形图2.新建要素图层3.开启编辑环境4.设置捕捉环境5.选择数字化图层6.数字化控制点7.数字化等高线8.数字化图幅边框9.保存数字化成果总结 前言 使用软件:ArcMap10.4.1中文版 如果出现侵权,请在评论留言,我会及时删除,谢谢。 地图数字化 空间数据采集(输入)是将现有的地图、外业观测成果、航空像片、遥感图片数据、文本资料等转换成GIS可以直接...

JayWang博客 1万+

uniapp - 实现APP后台持续定位+手机息屏后能持续上传位置信息数据,详解后台保活持续运行+手机锁屏保证后台持续/实时定位的解决方案及示例源码(完美兼容安卓android与苹果ios系统手机)

使用uniapp开发app实现后台保活定位能力,uniapp实时定位保活 息屏定位后台运行,uniapp APP实时定位高德 后台运行 支持锁屏息屏运行,持续获取定位信息,uniapp App端后台间隔时间发送定位功能实现,UniApp实现手机应用常活,固定时间内上传手机位置信息,后台(或锁屏)持续/实时定位的实现方案,uni-app后台持续定位,锁屏后能持续上传位置信息,实现后台定位持续无限制定位高德定位,百度定位,UniApp后台持续定位保如何在APP退到后台时保持定位服务,uniapp 切换app仍能

🏆 前端领域优质创作者 1万+

iOS 上的 FlexBox 布局 为什么要了解 FlexBox?

最近时不时的听到关于 FlexBox 的声音,除了在 Weex 以及 React Native 两个著名的跨平台项目里有用到 FlexBox 外,AsyncDisplayKit 也同样引入了 FlexBox 。 先说说 iOS 本身提供给我们 2 种布局方式: Frame,直接设置横纵坐标,并指定宽高。 Auto Layout,通过设置

优快云_Liuzongyi的博客 2386

Qt实现离线缓存地图(附完整源码)

Qt实现离线缓存地图(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 856

Flexbox布局

Flexbox简介 In the flex layout model, the children of a flex container can be laid out in any direction, and can “flex” their sizes, either growing to fill unused space or shrinking to avoid overflowin

Sundway 1105

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Flexbox-Labs终极指南:可视化Flexbox布局的完整解决方案

**Flexbox-Labs** 是一款革命性的Web应用,专为CSS Flexbox布局设计。无论你是前端开发新手还是经验丰富的设计师,这个工具都能帮助你通过直观的可视化界面,轻松创建、调整和理解复杂的响应式布局。在Web开发领域,掌握Flexbox布局技术对于构建现代、灵活的网页界面至关重要,而Flexbox-Labs正是你快速上手和精通这一技术的完美伴侣。 ## 为什么你需要Flexbox

gitblog_00174的博客 504

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

CSS FlexBox布局全面详解

1. 什么是FlexBox FlexBox(”弹性布局”)是CSS3提供的用于布局的一套新属性,这套属性包括针对容器(弹性容器,flex container)和针对其直接子元素(弹性项,flex item)的两类属性 FlexBox可以控制弹性项(flex item)的以下方面: 大小,基于内容和可用空间 流动方向,水平还是垂直,正向还是反向 两个轴向的对齐和分布 顺序,可覆盖源代码中的顺序 flex container默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axi

qq_43293207的博客 4077

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

CSS Flexbox 与 Grid 布局详解

和属性定义网格的列和行轨道(track)大小。/* 示例 *//* 三列,宽度比例为1:2:1 *//* 三行,第一行为50px,第二行为自适应高度,第三行为剩余空间 */属性定义网格布局的区域(area),通过命名项目并用字符串描述网格结构。/* 对应的项目需设置grid-area属性 */.item1 {.item2 {.item3 {.item4 {.item5 {

A15216110998的专栏 1727

flexbox_借助Flexbox轻松应对

flexbox What if you could build complex CSS layouts in minutes? Flexbox is a new CSS layout spec that makes it easy to construct dynamic layouts. With flexbox, vertical centering, same-height colum...

culuo8053的博客 226

如何通过游戏化学习快速掌握CSS Flexbox布局:Flexbox Froggy完整指南

CSS布局一直是前端学习的难点,尤其是Flexbox弹性盒模型,虽然功能强大但概念抽象。今天为大家推荐一款免费开源的学习工具——Flexbox Froggy,它将枯燥的语法学习变成了有趣的闯关游戏,让你在帮助青蛙跳上荷叶的过程中,轻松掌握Flexbox的核心用法。 ## 🐸 Flexbox Froggy是什么? Flexbox Froggy是一款专为学习CSS Flexbox设计的互动游戏,

gitblog_00870的博客 696

CSS Flexbox 青蛙游戏

关注前端开发博客,回复“加群”加入我们一起学习,天天进步导语在学习CSS中,Flexbox是一个比较实用的CSS 布局属性,但很复杂,有些人可能没法很快掌握,今天我要推荐一个跟这个相关...

前端开发博客 3461

FlexBox布局详解

背景 在Flexbox Layout(柔性盒)模块(目前是W3C最后呼叫工作草案)旨在提供一个更有效的方式来布置,调整和项目之间在一个容器中分配空间,即使它们的大小是未知的和/或动态的(因而词“柔性”)。 flex布局背后的主要思想是赋予容器更改其项目的宽度/高度(和顺序)以最好地填充可用空间(主要适应各种显示设备和屏幕大小)的能力。柔性容器可扩展项目以填充可用空间,或缩小它们以防止溢出 ...

静水流深 2449

flexbox_Flexbox指南

flexboxIntroduction 介绍 Browser support 浏览器支持 Enable Flexbox 启用Flexbox Container properties 容器属性 Align rows or columns 对齐行或列 Vertical and horizontal alignment 垂直和水平对齐 Change the horizontal alignment...

cuk0051的博客 249

Flexbox布局基础入门

任务 1、计算总分,并存储在变量totalScore 2、平均分,存储在变量avgScore 3、最高分减最低分(极差),存储在变量rangeScore中。

weixin_44955647的博客 752

什么是Flexbox布局?如何用Flexbox实现水平居中?

Flexbox布局(Flexible Box Layout,弹性盒模型)是CSS3中的一种布局方式,旨在简化复杂布局的实现,特别是在响应式设计和网格系统中具有显著优势。它通过主轴(main axis)和交叉轴(cross axis)两个方向来控制子元素的排列、对齐和分布,从而实现更灵活的布局方式。

破损的天堂鸟博客 968

理解 Flexbox:你需要知道的一切

本文转载自:http://www.codeceo.com/article/understanding-flexbox-everything-you-need-to-know.html?ref=myread 来源:大漠 这篇文章介绍了Flexbox模块所有基本概念,而且是介绍Flexbox模块的很好的一篇文章,所以这篇文章非常的长,你要有所准备。

随雨听风 2119
上一篇: 浏览器的工作原理
下一篇: 彻底掌握 CSS 定位:深入理解 relative、absolute、fixed 与 sticky 的原理与实战
黄毛火烧雪下
黄毛火烧雪下 领域专家: 操作系统技术领域 领域专家: 操作系统技术领域
博客等级 码龄14年 7714粉丝 439原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄毛火烧雪下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值