CSS——Flex弹性盒模型

Flex弹性盒模型
  flex布局,可以简便、完整、响应式地实现各种页面布局。
  采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 子项(项目)(flex item)
划分:
  作用在flex容器上:    
    flex-direction 
    flex-wrap 
    flex-flow 
    justify-content 
    align-items 
    align-content 

  作用在flex子项上:

    order
    flex-grow
    flex-shrink
    flex-basis
    flex
    align-self

  设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。
  容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。
  主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
  项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

一、作用在flex容器上的CSS属性
  flex-direction:
    flex-direction用来控制子项整体布局方向,是从左往右,还是从右往左,是从上到下,还是从下到上
    取值:             含义:
    row            默认值,显示为行。方向为当前文档水平流方向,默认情况下是从左到右。
    row-reverse      显示为行。但方向和row属性值是相反的。
    column        显示为列
    column-reverse     显示为列,但方向和column是相反的。

  flex-wrap:
    flex-wrap用来控制子项整体单行显示还是换行显示
    取值              含义
    nowrap          默认值,表示单行显示,不换行
    wrap           宽度不足换行显示
    wrap-reverse      宽度不足换行显示,但是是从下往上开始的,也就是原本换行在下面的子项现在跑到上面。

  flex-flow:
    flex-flow属性是flex-direction和flex-wrap的缩写,表示flex布局的flow流动特性。
    第一个值表示方向,第二个值表示换行,中间用空格隔开。

  justify-content:
    justify-content属性决定了主轴方向(左右方向)上子项的的对齐和分布方式。
    取值              含义
    flex-start      默认值,表现为起始位置对齐。
    flex-end          表现为结束位置对齐
    center        表现为居中对齐
    space-between    表现为两端对齐。between是中间的意思,意思是多余的空白间距只在元素中间区域分配。
    space-around    around是环绕的意思。意思是每个flex子项两侧都环绕各不相干的等宽的空白间距,最终视觉上边缘的两侧的空白只有中间空白的一半
    space-evenly    evenly是匀称,平等的意思。也就是视觉上每个flex子项的两侧空白间距完全相等。

  align-items
    align-items中的items指的就是flex子项们,因此align-items指的就是flex子项们相对于flex容器在侧轴方向上的对齐方式。
    align-items属性定义项目在交叉轴(交叉轴从上到下)上如何对齐。
    取值              含义
    flex-start          交叉轴的起点对齐,即容器顶部对齐。
    flex-end          交叉轴的终点对齐,即容器底部对齐。
    center            交叉轴的中点对齐,即垂直居中对齐。
    baseline          项目的第一行文字的基线对齐
    stretch        如果项目未设置高度或设为auto,那么flex子项拉伸,将占满整个容器的高度(默认值)

  align-content
    align-content可以看成和justify-content是相似且对立的属性,如果所有flex子项只有一行,则align-content属性是没有任何效果的
    align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
    取值               含义
    flex-start:            与交叉轴的起点对齐,即起始位置对齐。
    flex-end:            与交叉轴的终点对齐,即结束位置对齐。
    center:              与交叉轴的中点对齐,即居中对齐。
    space-between:        与交叉轴两端对齐,轴线之间的间隔平均分布,即两端对齐。
    space-around:       每根轴线两侧的间隔都相等,即每一行元素上下都享有独立不重叠的空白空间。
    stretch:      默认值,轴线占满整个交叉轴。每一个flex子元素都等比例拉伸。例如,如果共两行flex子元素,则每一行拉伸高度是50%

二、作用在flex子项上的CSS属性
  order:
    可以通过设置order改变某一个flex子项的排序位置。所有flex子项的默认order属性值是0。
  flex-grow:
    属性中的grow是扩展的意思。扩展的就是flex子项的所占据的宽度,扩展所侵占的空间就是除去元素外的剩余的空间间隙,默认值为0,值在0~1
  flex-shrink:
    属性中shrink是收缩的意思,flex-shrink主要处理当flex容器空间不足时候,单个元素的收缩比例。默认值为1,0表示不收缩
  flex-basis:
    flex-basis定义了分配剩余空间之前元素的默认大小,给定的是固定值,而不是比例尺。
  flex:
    flex属性是flex-grow,flex-shrink,flex-basis的缩写
  align-self:
    align-self指控制单独某一个flex子项的垂直对齐方式

 

posted @ 2021-02-01 16:41  泰初  阅读(222)  评论(0编辑  收藏  举报