flex布局又称弹性布局,是一种十分好用的网页布局方法,如果对低版本如ie浏览器等的兼容不苛刻用flex方法很合适,在学习阮一峰大神关于flex的博客中一部分知识点后总结了一下知识点
一、display:flex设置后的影响
设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。
采用 Flex 布局的元素,称为 Flex 容器(flex container)。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。
主轴的开始位置(与边框的交叉点)叫做main start,
结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。
项目默认沿主轴排列。
单个项目占据的主轴空间叫做main size,
占据的交叉轴空间叫做cross size。
二、容器属性
1,flex-direction
属性决定主轴的方向(项目的排列朝向)
flex-direction: row | row-reverse | column | column-reverse;
|上
|下
|右
|左
2,flex-wrap
默认情况下,项目都排在一条线(又称"轴线")上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
flex-wrap: nowrap | wrap | wrap-reverse;
|换行情况:默认不换行
|换行原第一行仍在上面
|换行原第一行在下面
3,flex-flow
flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。
flex-flow: <flex-direction> || <flex-wrap>;
4,justify-content
justify-content属性定义了在主轴上的对齐方式。
justify-content: flex-start | flex-end | center | space-between | space-around;
|默认左对齐
|右对齐
|居中
|两端对齐,项目之间的间隔都相等
|每个项目两侧的间隔相等。项目之间的间隔比项目与边框的间隔大一倍
5,align-items
align-items属性定义在交叉轴上如何对齐。
align-items: flex-start | flex-end | center | baseline | stretch;
|交叉轴的起点对齐
|交叉轴的终点对齐
|交叉轴的中点对齐
|项目的第一行文字的基线对齐
|默认值,如果项目未设置高度或设为auto,将占满整个容器的高度
6,align-content
属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
align-content: flex-start | flex-end | center | space-between | space-around | stretch
|与交叉轴的起点对齐
|与交叉轴的终点对齐
|与交叉轴的中点对齐
|与交叉轴两端对齐,轴线之间的间隔平均分布
|每根轴线两侧的间隔都相等。轴线之间的间隔比轴线与边框的间隔大一倍
|默认值:轴线占满整个交叉轴