flex 布局也叫做 弹性盒子布局。
    指 父元素在子元素大小不知道的情况下或者子元素动态变化的情况下,依然可以控制子元素的间隙。

    设置为 flex 的容器,默认有两条轴,一条是水平轴,也叫做主轴,另外一条是垂直轴,默认子元素沿着水平轴的方向排列。

    flex 也是有缺陷的,设置flex 布局的容器下面的子元素的 float、vertical-align、clear 属性会失效。

    flex 是 flex-grow、flex-shrink、flex-basis 的简写。
    flex 也可以写成 flex: 0 1 auto;

    1. flex-grow 默认值是0,表示项目的放大比例,在项目有剩余空间的情况下,为0,表示不放大,为1,表示自适应
    2. flex-shrink默认为1,表示项目的缩小比例,当剩余空间不够的时候,默认会缩小,设置成0,不会缩小
    3. flex-basis默认值为 auto,浏览器依靠这个属性判断主轴的空间是否有剩余
    1. // flex: 1
    2. // 等价于
    3. flex-grow: 1;
    4. flex-shrink: 1;
    5. flex-basis: 1;
    6. // flex: 0%;
    7. // 等价于
    8. flex-grow: 1;
    9. flex-shrink: 1;
    10. flex-basis: 0%;
    11. // flex: 24px;
    12. // 等价于
    13. flex-grow: 1;
    14. flex-shrink: 1;
    15. flex-basis: 24px;
    16. // flex: 2 3
    17. // 等价于
    18. flex-grow: 2;
    19. flex-shrink: 3;
    20. flex-basis: 0%;
    21. // flex: 1 0%;
    22. flex-grow: 1;
    23. flex-shrink: 1; // 此时它的默认值为 1
    24. flex-basis: 0%;