flex布局是什么
Flex是Flexible Box的缩写,翻译为“弹性布局”。它决定了元素如何在页面中排列,在不同的屏幕尺寸和设备下可以很好的展现。和传统的布局相比,该布局拥有很大的灵活性。
了解flex布局的三个核心概念
1.flex容器。顾名思义就是采用flex布局的一个组件。
2.flex项。就是需要放在容器中的元素咯。
3.排列方式。即flex项在flex容器中怎样摆放,决定了flex项的布局方向,称之为主轴。
啥时候使用该布局,啥时候不用
1.任何一个容器都可以使用flex布局。使用方法如下:
定义一个容器,使用display:flex属性即可 默认情况下flex项从左到右排列为一行2.整体页面布局时不建议使用该布局。
flex容器六大属性
1.flex-direction:决定主轴的方向,即flex项的排列方式
可取值:
row(默认值):flex项从左到右排列。(此例如上默认情况)
row-reverse:flex项从右往左排列。
flex项从右至左排列column:flex项从上到下排列。
flex项排从上到下排成一列column-reverse:flex项从下到上排列。
flex项从下到上排成一列2.flex-wrap:决定flex项一条轴线排不下时如何换行
可取值:
nowrap(默认):不换行。
与下图做对比。 对比两图发现当flex项宽度大于容器宽度时,它不换行,只是按比例缩小flex项宽度,直至适应flex容器宽度wrap:换行。第一行在上面。
wrap-reverse:换行,第一行在下面。
3.flex-flow:该属性是flex-direction与flex-wrap的简写形式。默认row nowrap。
row nowrap(默认值):
flex项从左到右排列且不换行,而是缩小比例。row wrap:
flex项从左到右排列,且换行时第一行在上面row wrap-reverse:
flex项从左到右排列,且换行时第一行在下面row-reverse nowrap:
flex项从右向左排列且不换行,而是缩小比例row-reverse wrap:
flex项从右到左排列,换行且第一行在上面row-reverse wrap-reverse:
flex项从右到左排列,换行且第一行在下面column nowrap:
column wrap:
column wrap-reverse:
column-reverse nowrap:
column-reverse wrap:
column-reverse wrap-reverse:
4.justify-content:定义flex项在主轴上的对齐方式。
可取值:
flex-start(默认值):左对齐。
flex项左对齐排列flex-end:右对齐。
flex项右对齐排列center:居中。
flex项在容器中居中显示space-between:两端对齐,flex项之间的间隔相等。
仅flex项之间有间隔,且间隔相等space-around:每个flex项之间的间隔相等。
每个flex项的两端都有间隔,且左右间隔相等。所以存在flex项之间的间隔比flex项与边框的间隔大一倍的情况。5.align-items:定义flex项在交叉轴上如何对齐
可取值:
stretch(默认值):如果flex项未设置高度或设为auto,将占满整个容器的高度。
flex项未设置高度,但是会充满容器的高度。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,表示即使存在多余空间也不放大。
对比两图即可发现flex项放大了,充满容器。3.flex-shrink:定义flex项的缩小比例。
可取值:
默认为1,表示如果空间不足就得缩小。
改成0时,即使空间不足也没有缩小flex项的大小。与下图对比。4.flex-basis:定义在分配多余空间之前,flex项占据的主轴空间。
可取值:
默认为auto,即维持flex项之前的大小。
可设置flex项同样的大小。5.flex:是flex-grow,flex-shrink,flex-basis的简写。
可取值:
默认为0 1 auto。
默认情况时:超过空间大小,缩小flex项。none:即0 0 auto
超出空间大小也不缩小flex项大小。auto: 即1 1 auto
6.align-self:允许单个flex项有与其他项不一样的对齐方式。
可取值:
默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
单独设置flex项的对齐方式。
网友评论