理解flex

flex基本概念

采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。

注意,设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。

flex基础语法

包括设置在容器上的容器属性(6个)以及设置在项目上的项目属性(6个),如下表格:

1 、容器
容器属性 用途 默认值
flex-direction 设置主轴方向 row
flex-wrap 定义如何换行 nowrap
flew-flow flew-direction\flew-wrap的简写 row nowrap
justify-content 设置主轴的对齐方式 flex-start
align-items 设置交叉轴的对齐方式 stretch
align-content 设置多行主轴的对齐方式 stretch
#####  容器属性与取值
flex-direction:  row row-reverse column column-reverse
flex-wrap:       wrap nowrap wrap-reverse
flew-flow:        
justify-content: flow-start | flow-end | center | space-between | space-around
align-items:     flow-start | flow-end | center | baseline | stretch
align-content:   flow-start | flow-end | center | space-between | space-around | stretch
2 、项目
项目属性 用途 默认值
flow-grow 设置放大比例 0
flow-shrink 设置缩小比例 1
flow-basis 设置初始大小 auto
flow flow-grow \flow-shrink\flow-basis的简写 0 1 auto
align-self 设置对齐方式 auto
order 设置排序位置 0
#####  项目属性与取值
flow-grow:      
flow-shrink:    
flow-basis:      | auto
flow:             
align-self:     auto | flex-start | flex-end | center | baseline | stretch;
order:          

我对flex的理解

  • 对于容器:
    1、要注意:justify-content属性是用来定义项目在主轴上如何对齐,具体对齐方式与轴的方向有关,所以要注意flex-direction定义的主轴方向。
    2、要注意:align-items属性是用来定义项目在交叉轴上如何对齐,具体的对齐方式与交叉轴的方向有关,所以要注意flex-direction定义的主轴方向。
  • 对于项目:
    1、要理解flow-grow flow-shrink:flow-grow:用来定义有多余空间时,项目是否放大;flow-shrink用来定义空间不足时,项目是否缩小。
    2、要理解:flex-basis指的是flex items在被放进一个flex容器之前的大小
    3、要注意:flex-basis属性定义的是在分配多余空间之前,项目占据的主轴空间
    4、要注意:flow-shrink不可为负值,order可为负值
    5、要注意:order数值越小,排列越靠前
    6、要注意:align-self为auto时继承父元素的align-items,若无父元素,则等同于stretch。
    7、请记住:flex属性的快捷值:
flex:auto   (=>1 1 auto) 
flex:none   (=>0 0 auto)
flex:1      (=>1 1 0%)  flex:2(=>2 1 0%) flex:2 3(=>2 3 0%)
flex:50%    (=>1 1 50%)

相关参考

语法:Flex 布局教程:语法篇
实践:小游戏
flex:1:flex:1
flex-basis:flex-basis与width区别

你可能感兴趣的:(理解flex)