Flex布局
任何一个容器都可以指定为Flex布局
.box{
display:flex;
}
// 行内元素也可以使用Flex布局
.box{
display:inline-flex;
}
每个容器都存在水平、垂直交叉的两个轴。
该容器下的所有子元素都会自动成为容器成员,每个子元素称之为 flex项目,所有子元素默认按照主轴排列
容器的属性
### flex-direction
该属性决定了主轴的方向,既项目的排列方向,可能有四个值:
### row 该值为默认值,起点在左端
### row-reverse 主轴为水平方向,起点在右端
### column 主轴为垂直方向,起点在顶部
### column-reverse 主轴垂直方向,起点在底部
ps:只需要记得 row 与 column 即可 其余两个均为反转方向
### flex-wrap
该属性是用来判断 容器排列不下时如何换行的
### nowrap 该值为默认值,不换行
### wrap 换行 第一行在上方
### wrap-recerse 换行 第一行在下方
### flex-flow
该属性为 flex-direction 与 flex-wrap 的缩写
### flex-flow: <flex-direction> <flex-wrap>
### justify-content
该属性定义了项目在主轴上的对齐方式
### flex-start 左对齐
### flex-end 右对齐
### center 居中展示
### space-between 两端对齐 项目之前间隔相等
### space-around 每个项目两侧的间隔相等
### align-items
该属性定义项目在垂直方向上的对齐,垂直(相对于主轴的方向来定)
### flex-start 垂直顶部对齐
### flex-end 垂直底部对齐
### center 可称为居中对齐
### baseline 项目的第一行文字的基线对齐
### stretch 默认值,如果未设置高度或设置为 auto 占满整个容器高度
### align-content
该属性定义了多根轴线,如果只有一根轴线 则不起作用
### flex-start:与交叉轴的起点对齐。
### flex-end:与交叉轴的终点对齐。
### center:与交叉轴的中点对齐。
### space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
### space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
### stretch(默认值):轴线占满整个交叉轴。
上面的属性均为容器的属性,也就是容器内的项目的排列的规则
项目属性
### order
定义项目的排序顺序,数值越小越靠前,默认为0 可为负值
### flex-grow
当前项目的放大比例,默认为零,既如果存在空间剩余,也不进行放大
### flex-shrink
可使项目等比例缩小,默认为1,如果不为1,则该项目不缩小,负值无效
### flex-basis
### flex
该属性是上面三个的简写
### align-self
该属性允许单个项目有与其他项目不一样的对齐方式,可以覆盖align-items 默认值为auto,表示继承父元素的align-items属性,如果没有父元素,等同于stretch
该文章仅为大致整理,详细的请前往 Flex 布局语法教程 进行查看