什么是Flex布局?
Flex是Flexible Box的缩写,顾名思义为“弹性布局”,用来为盒装模型提供最大的灵活性。
任何一个容器都可以指定为Flex 布局。
需要注意的是,设为flex布局以后,子元素的float、clear和vertical-align属性将失效
* webkit内核的浏览器,必需加上-webkit前缀
.box{
display:-webkit-flex;
display:flex;
}
flex-box(容器):5个有用,1个集合属性
1.flex-direction 决定项目在主轴的排列方向。
flex-direction:row | row-reverse | column | column-reverse;
row(默认值):主轴为水平方向,起点在左端
row-reverse:主轴为水平方向,起点在右端
column:主轴为垂直方向,起点在上沿
column-reverse:主轴为垂直方向,起点在下沿
2.flex-wrap 决定如果一条轴线排不下了,该如何换行。
flex-wrap: nowrap | wrap | wrap-reverse;
3.flex-flow 是flex-direction和wrap的简写形式,默认row nowrap。
flex-flow:<flex-direction> || <flex-wrap>;
4.justify-content 决定项目在主轴方向上如何对齐。
justify-content:flex-start | flex-end | center | space-between |space-around;
5.align-items 决定项目在交叉轴上如何对齐。
align-items:flex-start | flex-end | center |baseline | stretch;
6.align-content 定义多根轴线如何对齐。
align-content:flex-start | flex-end | center | spance-between | space-around |stretch;
flex-item(项目):5个有用,1个集合属性
1.order 决定项目的排列顺序,数值越小,排列越靠前。
order:<integer>;
2.flex-grow 决定项目的放大比例,默认值是0,也就是存在剩余空间,不放大。
flex-grow:<number>;/* default 0*/
3.flex-shrink 是也就是决定项目的缩小比例,默认是1,表示剩余空间不足时,等比缩小,如果需要不变,可以设置为0。
flex-shrink:<number>;/* default 1 */
4.flex-basis 定义了在分配多余项目之前,项目占据的主轴空间。浏览器根据这个属性,计算主轴是否有多余空间。
它的默认值为auto,即项目的本来大小。它可以设为跟width或height属性一样的值(比如350px),则项目将占据固定空间。
flex-basis:<length> | auto ; /*default auto*/
5.flex 是以上三个的简写,默认0 1 auto,也就是不放大,不缩小,占据项目本来大小的主轴空间。
该属性有两个快捷值: auto (1 1 auto) 和 none (0 0 auto),这里也不过多赘述。
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
6.align-self属性 默认auto,继承flex容器,也就是父元素的align-items属性,项目和algn-items一样,
只是决定单个item对交叉轴的对齐方式。
align-self: auto | flex-start | flex-end | center | baseline | stretch;