2009年,W3C提出了一种新的布局方式:Flex布局。
使用Flex布局可以简便,完整,响应式地实现各种页面布局,目前得到了大部分现代浏览器的支持。
一,基本概念:
采用Flex布局的元素,称为Flex容器(flex container),所有Flex容器子元素自动成为Flex容器成员,也可以称作Flex项目(flex item)。
下面是结构示意图:
从上图可以看到Flex容器有两条轴,分别是水平方向主轴(main axis)和垂直方向交叉轴(cross axis)。
main start | main end:主轴开始|结束位置
cross start | cross end:交叉轴开始|结束位置
main size | cross size:单个Flex子元素占据主轴/交叉轴空间
二,Flex容器
在Flex容器上有6个属性,分别是:
1,flex-direction:row(默认) | row-reverse | column | column-reverse
设置Flex容器主轴的方向,有四个值:
row(默认):主轴水平方向,从左到右
row-reverse:主轴水平方向,从右到左
column:主轴垂直方向,从上到下
column-reverse:主轴垂直方向,从下到上
2,flex-wrap:no-wrap(默认)| wrap | wrap-reverse
设置Flex容器子元素的换行情况,
no-wrap(默认):不换行
默认情况下图片排成一行或者一列,假如Flex容器主轴方向是水平方向,修改修改图片宽度。
wrap:换行,上对齐
wrap-reverse:换行,镜像,下对齐
3,flex-flow:row no-wrap;
flex-flow是flew-direction和flex-wrap的缩写,默认值是row no-wrap;
4,justify-content:start | end | flex-start(默认) | flex-end | center | left | right | space-between | space-around | space-evenly | stretch | safe | unsafe | baseline | first-baseline | last baseline
定义Flex子元素在主轴上的对齐方式。
flex-start:左对齐
flex-end:右对齐
center:局长对齐
space-between:两端对齐
sapce-around:这种对齐方式的效果是元素之间的距离是距离边界的距离的2倍。
5,align-items:flex-start | flex-end | center | baseline | stretch(默认值)
定义flex项目在交叉轴上的对齐方式
flex-start::起点对齐
flex-end:终点对齐
center:中点对齐
baseline:对齐第一个flex元素里面的文字
6,align-content:flex-startt | flex-end | center | space-between | space-around | stretch(默认)
定义多根轴线的对齐方式,适用于多行或者多列的flex布局,如果只有一行或者一列则改属性不起作用,所以必须把flex-wrap设置为wrap。
还是以主轴在水平方向为例,先把flex子元素设置为多行。
flex-start:起点对齐
flex-end:终点对齐
center:中点对齐
space-between:与交叉轴的两端对齐
spce-around:每根轴线之间的距离为为轴线到两端距离的两倍
三,Flex子元素
Flex子元素上也有6个属性,分别是:
1,order:默认0
定义flex子元素的排列顺序,数值越小排列越靠前
2,flex-grow:默认0
定义项目的放大比例。
如下图设置四个flex子元素的宽度分别为flex-grow:1,2,3,4
3,flex-shrink:默认值1,必须是非负整数。
定义项目的缩小比例,和flex-grow属性意义相反。
如果值为0则对于的flex子元素不会缩小。
4,flex-basis:auto(默认)
定义在分配多余空间之前,项目占据的主轴空间。如果空间不足则默认情况下项目也会缩小。
5,flex
flex是flex-grow,flex-shrink,flex-basis的简写
6,align-self:auto(默认,继承父元素) | flex-start | flex-end | center | baseline | stretch
可以设置单个flex子元素的对齐方式,改属性会覆盖flex容器上的align-items属性。
参考:https://mp.weixin.qq.com/s/NnIL0SBsVLJI6lJDJMKewA
相关推荐
Flex是Adobe公司推出的一种基于ActionScript 3.0的开源框架,主要用于构建富互联网应用程序(Rich Internet Applications,简称RIA)。这种技术允许开发者创建具有高度交互性和动态视觉效果的Web应用,提供比传统...
Flex是由Adobe公司开发的一种开放源码的富互联网应用程序(RIA)框架,主要用于构建和部署跨平台、跨浏览器的互动用户界面。本教程基于Flex官方文档,旨在为开发者提供中文版的详细学习指南,帮助理解并掌握Flex的...
【标题】"记事万年历flex源码"所涉及的知识点主要集中在Adobe Flex技术和日历应用程序开发上。Flex是一种基于ActionScript 3.0的开源框架,用于构建富互联网应用(RIA)。它允许开发者使用MXML和ActionScript来创建...
在用了Flex布局会发现,当水平排列后,会发现所有子项的高度都变成一样的了。 这是因为Flex 布局会默认: 把所有子项变成水平排列。 默认不自动换行。 让子项与其内容等宽,并把所有子项的高度变为最高子项的...
Flex Web工作流程图是一种利用Adobe Flex技术创建的用于设计和展示流程、工作流或系统交互的可视化工具。Flex是一款强大的开发框架,主要用于构建富互联网应用程序(Rich Internet Applications, RIA),它基于...
Flex是开源的、高度可移植的词法分析器生成器,专门用于创建处理文本输入流的解析器。这个“flex-2.6.0.tar.gz”文件是一个针对Flex 2.6.0版本的源码压缩包,适用于Unix/Linux类操作系统。在Linux环境中,我们通常会...
在IT行业中,FLEX(Flexible Learning Environment eXtension)是一种基于Adobe Flash技术的开发框架,主要用于构建富互联网应用程序(RIA)。本篇文章将详细介绍FLEX的安装与配置过程,帮助初学者快速上手。 首先...
这个"flex例子.flex源程序"很显然是一个Flex开发的学习资源,它包含了一个或多个示例项目,用于帮助开发者理解和掌握Flex编程的基本概念和实践。 Flex的主要组件包括MXML和ActionScript,它们是构建Flex应用的两大...
Flex Messaging系列JAR包是Adobe Flex与Java之间进行通信的核心组件,主要负责建立富互联网应用程序(RIA)与服务器之间的消息传递。这些JAR文件包含了多种服务和协议的支持,使得Flex客户端能够与Java后端无缝交互...
Flex是开源的、高度可移植的词法分析器生成器,用于创建处理结构化文本或二进制文件的扫描器。这个"flex-2.6.4.tar.gz"文件是Flex 2.6.4版本的源代码压缩包,遵循GNU General Public License (GPL)发布。在Linux和类...
Flex工具包是编译原理学习和实践中不可或缺的一部分,主要用于创建词法分析器(lexer)或扫描器。在编译器设计领域,词法分析是编译过程的第一步,它将源代码分解成一个个称为标记(token)的独立单元,这些标记随后...
本项目聚焦于使用Flex API,一种基于Adobe Flex的开发框架,来实现军标箭头库的构建。这涉及到Web GIS应用的开发,以及如何将军事符号标准(例如北约军标)与地图服务相结合。 首先,ArcGIS Flex API是由Esri公司...
Flex和Bison是两款在软件开发领域中广泛使用的开源工具,尤其在编译器和解释器的构造过程中扮演着重要角色。本安装包包含了这两个工具的安装程序,为QGIS(一个开源地理信息系统)的编译提供必要的组件。 Flex,...
Selenium 对 Flex 程序的自动化测试 Selenium 是一个自动化测试工具,它可以模拟用户的行为来测试 Web 应用程序。Flex 是一种基于 XML 的开发语言,用于构建 Rich Internet Applications(RIA)。在这篇文章中,...
在现代Web开发中,Flex布局(Flexible Box布局)已经成为创建响应式、动态和灵活的用户界面的标准工具。这个“flex移动布局,极简公共样式包”正是为了方便开发者快速构建适应不同屏幕尺寸的移动端应用而设计的。让...
Flex Air是中国Adobe公司开发的一款基于Flash技术的富互联网应用程序(RIA)开发平台,它允许开发者创建可以在桌面运行的跨平台应用程序。本“Flex Air中文官方帮助文档”是开发者的重要参考资料,详细介绍了Flex ...
《深入理解bison与flex:在Windows和Linux下的安装与应用》 bison和flex是两个在编程领域中广泛使用的工具,特别是在解析器和编译器的开发中扮演着核心角色。bison(以前称为yacc)是一个语法分析器生成器,而flex...
Flex是Adobe公司推出的一种用于构建富互联网应用程序(RIA)的技术,它基于ActionScript编程语言和Flex框架,可以创建交互性强、用户体验优秀的Web应用。本教程是作者精心编写的Flex学习资料,适合初学者入门,通过...
FlexDemo.rar是一个包含Flex、BlazeDS和Spring框架整合示例的压缩包。这个压缩包主要是为了演示如何在Flex前端应用中实现与后端服务的数据交互,特别是利用BlazeDS进行实时数据推送以及消息订阅的功能。以下是关于...
Flex Messaging Core是Adobe Flex框架的核心组件之一,主要负责实时的服务器到客户端的通信。这个Java Archive (JAR) 文件包含了实现AMF(Action Message Format)协议所需的类库,AMF是一种高效的数据序列化协议,...