display属性的Flex布局的学习

1flex布局的基本概念

采用Flex布局的元素,称为Flex容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称"项目"。容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size

2、flex容器的基本属性

  • flex-direction  容器内项目的排列方向(默认横向排列)  
  • flex-wrap  容器内项目换行方式
  • flex-flow  以上两个属性的简写方式
  • justify-content  项目在主轴上的对齐方式
  • align-items  项目在交叉轴上如何对齐
  • align-content  定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

1.flex-directon属性:表示项目的排列方式或者说主轴的方向,有以下四个值

row:默认值,主轴为水平方向,从左向右排列

row-reverse:主轴为水平方向,从右向左排列

column:主轴为垂直方向,从上往下排列

column-reverse:主轴为垂直方向,从下往上排列

2.flex-wrap属性:默认情况,所有的子元素都在一行,此属性主要定义如果不在一行时子元素如何排列,有如下三个值:

nowrap:不换行

wrap:换行

wrap-reverse:换行,第一行在下方,第二行在第一行上面依次类推

3.flex-flow:集1.和2.属性于一身,意思就是这个属性可以直接指定上面两个属性的值,默认值为:row nowrap

4.justify-content:定义子元素在主轴上的对齐方式,有以下五个值:

flex-start:左对齐

flex-end:右对齐

center:居中

space-between:两端对齐

space-around:每个项目两侧间隔相等

5.align-items属性:定义子元素在水平轴和垂直轴的交叉轴上如何对齐,有以下五个值:

flex-start:交叉轴的起点对齐

flex-end:交叉轴的终点对齐

center:交叉轴的中点对齐

baseline:项目的第一行文字基线对齐

strecth:默认

6.algin -content属性:定义多根轴线的对齐方式,如果项目只有一根轴线,则该属性不起作用,该属性有以下六个值:

flex-start:交叉轴的起点对齐

flex-end:交叉轴的终点对齐

center:交叉轴的中点对齐

space-between:与交叉轴的两端对齐,轴线间的间隔平均分布

space-around:每根轴线的两侧的间隔都相等

strecth:默认,轴线占满整个交叉轴

3、子元素(项目)的属性

1.order属性:定义子元素的排列顺序,数值越小,排列越靠前,默认为0

2.flex-grow属性:定义项目的放大比例,默认值是0,就是如果存在剩余空间,也不放大。

若所有子元素的flex-grow值为1,则子元素等分剩下的空间

若一个元素的属性值为N,剩下值为1,则属性值为N的元素等分的空间是1的N倍

3.flex-shrink属性:定义了项目的缩小比例,默认为1,就是如果空间不足,该项目将缩小

若所有子元素此属性为1,空间不足时,将会被等比缩小,

若有元素属性值为0,即使空间不足,也不会被缩小

4.flex-basis属性:定义了在分配多余空间之前,项目占据的主轴空间。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto原本的大小,也可以设置px结尾固定大小

5.flex属性:是2.3和4属性的简写,默认值为:0 1 auto,可以只写第一个值,后面两个是可选参数;该属性的两个快捷值:auto(1 1 auto)和none(0 0 auto)

6.align-self属性:此属性允许单个子元素与其他子元素不一样的对齐方

auto:默认值,表示继承父元素的属性,

其他:align-items值相同

学习参照网址:https://www.cnblogs.com/xuyuntao/articles/6391728.html

猜你喜欢

转载自blog.csdn.net/leoly612200/article/details/81557991