Flex布局
来源:互联网 发布:光大证券 for mac 编辑:程序博客网 时间:2024/06/10 11:18
一、简介
Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。容器被设定为Flex布局以后,子元素的float、clear、vertical-align将失效。
.box{display: flex;}
二、属性
容器的属性6个,可以设置在box父容器上,用来控制子元素的显示方式。
属性描述
flex-direction
设置元素的排列方向
flex-wrap
子元素超出父容器时是否换行
flex-flow
是flex-direction和lfex-wrap的简写
justify-content
元素在主轴上对齐方式
align-items
元素在交叉轴对齐方式
align-content
设置或检索弹性盒堆叠伸缩行的对齐方式
2.1、排列方式(flex-direction)
flex-direction可以改变主轴的方向,row 从左到右是主轴,从上到下是交叉轴;column从上到下是主轴,从左到右是交叉轴。
描述
row
为水平方向,起始点在左边,从左到右排列(左对齐)
row-reverse
对齐方式与row相反,起始点在右边,从右向左排列,(右对齐)
column
垂直方向,起点在顶端,即纵向从上往下排列(顶对齐)
column-reverse
对齐方式与column相反,起点在底端,即纵向从下往上排列(底对齐)
.box{display: flex; flex-direction: row;}
.box{display: flex; flex-direction: row-reverse;}
.box{display: flex; flex-direction:column;}
.box{display: flex; flex-direction:column-reverse;}
2.2、flex-wrap子元素换行方式
属性描述
nowrap
默认nowrap,父容器为单行,子元素不换行,可能会溢出
wrap
父容器可以为多行,子元素超出父容器部分,会被从新放置到下一行
wrap-reverse
与wrap相反,第一行在下边
.box{display: flex;flex-wrap: nowrap;}
.box{display: flex;flex-wrap: wrap;}
.box{display: flex;flex-wrap: wrap-reverse;}
2.3、flex-flow复合属性
该属性是flex-direction和flex-wrap属性的简写形式。默认row nowrap。
.box{display: flex;flex-flow:row wrap;}
2.4、justify-content
属性描述
flex-start
默认行起始位置,左对齐
flex-end
行结束位置,右对齐
center居中,中间位置对齐
space-between
两端对齐,子元素之间间隔相等
space-around
子元素两次的间隔相等。两端的间距,是子元素之间间距一半
.box{display: flex;justify-content: flex-start;}
.box{display: flex;justify-content: flex-end;}
.box{display: flex;justify-content: center;}
.box{display: flex;justify-content: space-between;}
.box{display: flex;justify-content: space-around;}
2.5、align-items
属性描述stretch默认值,如果子元素未设置高度或者设置为auto,将暂满整个容器高度
center交叉轴(纵轴)的中点对齐flex-start
交叉轴(纵轴)的起点对齐
flex-end交叉轴(纵轴)的终点对齐
baseline子元素的第一行文字为基线对齐
.box{display: flex;align-items: stretch;}
.box{display: flex;align-items: center;}
.box{display: flex;align-items: flex-start;}
.box{display: flex;align-items: flex-end;}
.box{display: flex;align-items: baseline;}
2.6、align-content
该属性定义了多根轴线的对齐方式,如果只有一根轴线,该属性不起作用。
描述
flex-start与交叉轴的起点对齐flex-end与交叉轴的终点对齐center与交叉轴的中点对齐space-between与交叉轴两端对齐,轴线之间的间隔平均分布space-around每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍stretch轴线占满整个交叉轴
.box{display: flex;flex-wrap: wrap;align-content: flex-start;}
.box{display: flex;flex-wrap: wrap;align-content: flex-start;}
.box{display: flex;flex-wrap: wrap;align-content: center;}
.box{display: flex;flex-wrap: wrap;align-content: space-between;}
.box{display: flex;flex-wrap: wrap;align-content: space-around;}
.box{display: flex;flex-wrap: wrap;align-content: stretch;}
三、设置子元素属性
属性描述
order默认为0 ,定义子元素排列顺序,值越小,越排在前面
flex-grow默认0,多余空间,子元素放大比例
flex-shrink默认1,空间不足,子元素缩小比例
flex-basis默认值auto,元素本来大小。计算主轴的剩余空间,设置值即为元素占据的固定空间
flex默认 0 1 auto 是flex-grow ,flex-shrink,flex-base的简写,后两个属性可选。
align-self默认auto,属性允许单个项目有与其他项目不一样的对齐方式,可覆盖 align-items属性
将第4个div 的order设置成-1将排在其他子元素前面。
.item{order: -1;}
flex-grow 属性值默认为0,如果值设为1将等分剩余空间,如果一个元素是2 ,其他是1,该元素占的剩余空间是其他元素一倍。下面例子中 div1 属性值为2 ,其他元素属性值为1.
.item{flex-grow:2;}
flex-shrink空间不足是缩小,默认值为1。下面列子中div值都为0,div1值设置为1 ,空间不足div1会缩小.
.item{flex-shrink:1;}
flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。如果有多余的空间,flex-basis:150px,那么该元素就会被放大150的宽度
.item{flex-basis:150px;}
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。 除了auto是表示继承父元素,其他的跟align-items是一样的。
.item { align-self: auto | flex-start | flex-end | center | baseline | stretch;}
.item1{align-self:auto;}.item2{align-self:flex-start;}.item3{align-self:flex-end;}.item4{align-self:center;}.item5{align-self:baseline;}.item6{align-self:stretch;}
阅读全文
0 0
- Flex布局
- flex布局
- Flex 布局
- flex布局
- Flex 布局
- Flex布局
- Flex布局
- Flex布局
- flex布局
- Flex布局
- flex布局
- flex布局
- Flex布局
- flex布局
- flex布局
- Flex布局
- Flex布局
- Flex布局
- Linux 限制单个文件夹大小
- 7月31日云栖精选夜读:金融安全资讯精选 2017年第一期:云战略下的安全思维转型与新认知
- JavaScript 数据类型
- SQLite初识(一)创建数据库
- C#知识的扩展(EF、Linq、lambda、MVC、jquery)
- Flex布局
- Swift学习之小记(持续更新)
- JavaScript 对象
- 《零基础入门学习Python》学习过程笔记【25,26字典】
- 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 & 第一个Shader的书写
- 【C++】STL中map的详细使用说明
- Android 部分手机拍照完成后应用闪退获取不到图片
- linux 64位栈溢出分析
- 《罗辑思维》感悟