http://mp.weixin.qq.com/s?__biz=MzIxNjEzNjUzOQ==&mid=402020148&idx=4&sn=1e54c10974c4efacd78d7fc3d0da60bd&mpshare=1&scene=1&srcid=10200TIN6NG8ktULzkc0rQuP#rd
### Flexbox的常用属性
#### 容器属性
> flexDirection: `row | row-reverse | column | column-reverse`
> 该属性决定主轴的方向(即项目的排列方向)。
> row:主轴为水平方向,起点在左端。
> row-reverse:主轴为水平方向,起点在右端。
> column(默认值):主轴为垂直方向,起点在上沿。
> column-reverse:主轴为垂直方向,起点在下沿。
![](https://box.kancloud.cn/8920d5c77e19ef19d9c76582d1fe6e02_640x287.png)
> justifyContent:`flex-start | flex-end | center | space-between | space-around`
> 定义了伸缩项目在主轴线的对齐方式
> flex-start(默认值):伸缩项目向一行的起始位置靠齐。
> flex-end:伸缩项目向一行的结束位置靠齐。
> center:伸缩项目向一行的中间位置靠齐。
> space-between:两端对齐,项目之间的间隔都相等。
> space-around:伸缩项目会平均地分布在行里,两端保留一半的空间。
![](https://box.kancloud.cn/54d4aeb1f86c231344b531c15a708dd2_590x294.png)
> alignItems: `flex-start | flex-end | center | baseline | stretch`
> 定义项目在交叉轴上如何对齐,可以把其想像成侧轴(垂直于主轴)的“对齐方式”。
> flex-start:交叉轴的起点对齐。
> flex-end:交叉轴的终点对齐 。
> center:交叉轴的中点对齐。
> baseline:项目的第一行文字的基线对齐。
> stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
![](https://box.kancloud.cn/95a24d322c007562e2c3a1ca2a5aa947_548x396.png)
> flexWrap: `nowrap | wrap | wrap-reverse`
> 默认情况下,项目都排在一条线(又称"轴线")上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
![](https://box.kancloud.cn/4437cc86f2a5cdaf6f5a39cad27d7d82_640x198.png)
#### 元素属性
#### flex
> “flex-grow”、“flex-shrink”和“flex-basis”三个属性的缩写, 其中第二个和第三个参数(flex-shrink、flex-basis)是可选参数。
> 默认值为“0 1 auto”。
> 宽度 = 弹性宽度 * ( flexGrow / sum( flexGorw ) )
![](https://box.kancloud.cn/4635eb931755b455ec3779170009a7c7_640x209.png)
#### alignSelf
> alignSelf: “auto | flex-start | flex-end | center | baseline | stretch”
> align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。