一、简介
弹性盒子布局(flexible box layout)是一维布局模型
我们先使用 display: flex 或 display: inline-flex 创建 flex container,然后它的子元素都是 flex item,它有主轴和交叉轴的概念
弹性盒子相关的属性
- flex-direction:设置 flex container 的主轴方向
 - flex-wrap:设置 flex item 是强制放在一行还是可以放在多行
 - flex-flow:是 flex-direction 和 flex-wrap 的简写属性
 - flex-grow:设置 flex item 尺寸的增长系数
 - flex-shrink:设置 flex item 尺寸的收缩规则
 - flex-basis:设置 flex item 的初始尺寸
 - flex:是 flex-grow、flex-shrink、flex-basis的简写属性
 - order:设置 flex item 布局的顺序
 
对齐相关的属性
- justify-content:设置 flex container 内部在主轴上如何给 flex item 分配空间
 - align-items:设置 flex item 在交叉轴的对齐方式
 - align-content:设置 flex container 在多行时在交叉轴的对齐方式
 - align-self:设置 flex-item 在交叉轴的对齐方式,覆盖已有的 align-items 值
 
二、各个属性
1. flex-direction
设置 flex container 的主轴方向
- 默认值为 row
rowrow-reversecolumncolumn-reverse
 
2. flex-wrap
设置 flex item 是强制放在一行还是可以放在多行
- 默认值为 nowrap
nowrapwrap
 
3. flex-flow
是 flex-direction 和 flex-wrap 的简写属性
- 属性的依次顺序为 flex-direction、flex-wrap
.test{flex-flow: column wrap;}
 
4. flew-grow
设置 flex item 尺寸的增长系数
- 默认值为 0 ``` .test{ flew-grow: 3; }
 
.test{ flex-grow: 0.6; }
<a name="GRjtM"></a>### 5. flex-shrink设置 flex item 尺寸的收缩规则- 默认值为 1```css.test{flex-shrink: 2;}.test2{flex-shrink: 0.6;}
6. flex-basis
设置 flex item 的初始尺寸
- 默认值为 auto ```css / flew-item 的内容大小 / .test{ flex-basis: auto; }
 
.test{ flex-basis: 0; }
.test3{ flex-basis: 200px; }
<a name="WBuKF"></a>### 7. flex是 flex-grow、flex-shrink、flex-basis 的简写属性- 属性的依次顺序为 flex-grow、flex-shrink、flex-basis- 当它为无单位的数时,它会被当作 flex-grow/flex-shrink 的值- 当它为有效的宽度值时,它会被当作 flex-basis 的值```css/* 一个值,flex-grow */.test{flex: 2;}/* 一个值,flex-basis */.test2{flex: 30px;}/* 两个值,flex-grow、flex-basis */.test3{flex: 1 30px;}/* 两个值,flex-grow、flex-shrink */.test4{flex: 2 2;}/* 三个值 */.test5{flex: 2 2 10%;}
8. order
设置 flex item 布局的顺序
.test{order: 2;}
9. justify-content
设置 flex container 内部在主轴上如何给 flex item 分配空间
- 默认值为 flex-start
flex-startcenterflex-endspace-betweenspace-aroundspace-evenly
 
10. align-items
设置 flex item 在交叉轴的对齐方式
- 默认值为 strench
strenchflex-startcenterflex-endbaseline
 
11. align-content
flex container 在多行时在交叉轴的对齐方式
strenchflex-startcenterflex-endspace-betweenspace-around
12. align-self
设置 flex-item 在交叉轴的对齐方式,覆盖已有的 align-items 值
strenchflex-startcenterflex-endbaseline
三、参考链接
弹性盒子布局 - MDN:https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout
弹性盒子的基本概念 - MDN:Basic_Concepts_of_Flexbox
Flex 布局教程(语法篇)- 阮一峰:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
[
