2018-10-01flex布局学习
flex布局是什么
Flex是Flexible Box的缩写,翻译为“弹性布局”。它决定了元素如何在页面中排列,在不同的屏幕尺寸和设备下可以很好的展现。和传统的布局相比,该布局拥有很大的灵活性。
了解flex布局的三个核心概念
1.flex容器。顾名思义就是采用flex布局的一个组件。
2.flex项。就是需要放在容器中的元素咯。
3.排列方式。即flex项在flex容器中怎样摆放,决定了flex项的布局方向,称之为主轴。
啥时候使用该布局,啥时候不用
1.任何一个容器都可以使用flex布局。使用方法如下:
2.整体页面布局时不建议使用该布局。
flex容器六大属性
1.flex-direction:决定主轴的方向,即flex项的排列方式
可取值:
row(默认值):flex项从左到右排列。(此例如上默认情况)
row-reverse:flex项从右往左排列。
column:flex项从上到下排列。
column-reverse:flex项从下到上排列。
2.flex-wrap:决定flex项一条轴线排不下时如何换行
可取值:
nowrap(默认):不换行。
wrap:换行。第一行在上面。
wrap-reverse:换行,第一行在下面。
3.flex-flow:该属性是flex-direction与flex-wrap的简写形式。默认row nowrap。
row nowrap(默认值):
row wrap:
row wrap-reverse:
row-reverse nowrap:
row-reverse wrap:
row-reverse wrap-reverse:
column nowrap:
column wrap:
column wrap-reverse:
column-reverse nowrap:
column-reverse wrap:
column-reverse wrap-reverse:
4.justify-content:定义flex项在主轴上的对齐方式。
可取值:
flex-start(默认值):左对齐。
flex-end:右对齐。
center:居中。
space-between:两端对齐,flex项之间的间隔相等。
space-around:每个flex项之间的间隔相等。
5.align-items:定义flex项在交叉轴上如何对齐
可取值:
stretch(默认值):如果flex项未设置高度或设为auto,将占满整个容器的高度。
flex-start:交叉轴的起点对齐。
flex-end:交叉轴的终点对齐。
center:交叉轴的中点对齐。
baseline:flex项的第一行文字的基线对齐。
6.align-content:定义了多根轴线的对齐方式,如果只有一根轴线时不起作用。
可取值:
flex-start:与交叉轴的起点对齐。
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐。
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
stretch:轴线占满整个交叉轴。
flex项的属性
1.order:定义flex项的排列顺序。
可取值:
整型,默认为0.
2.flex-grow:定义flex项的放大比例。
可取值:
默认为0,表示即使存在多余空间也不放大。
3.flex-shrink:定义flex项的缩小比例。
可取值:
默认为1,表示如果空间不足就得缩小。
4.flex-basis:定义在分配多余空间之前,flex项占据的主轴空间。
可取值:
默认为auto,即维持flex项之前的大小。
5.flex:是flex-grow,flex-shrink,flex-basis的简写。
可取值:
默认为0 1 auto。
none:即0 0 auto
auto: 即1 1 auto
6.align-self:允许单个flex项有与其他项不一样的对齐方式。
可取值:
默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。