首先,设置伸缩盒的 display 有如下两个属性值:
flex:将容器盒模型作为块级弹性伸缩盒显示
inline-flex:将容器盒模型作为内联级弹性伸缩盒显示
代码如下:
/*大部分不需要前缀*/ div { display: flex; }
弹性布局的八个常用属性:
1.flex-direction
flex-direction 属性和旧版本 box-orient 属性一样,都是设置伸缩项目的排列方式。代码如下:
/*设置从上往下排列*/ div { flex-direction: column; }
row:设置从左到右排列
row-reverse:设置从右到左排列
column:设置从上到下排列
column-reverse:设置从下到上排列
2.flex-wrap
flex-wrap 属性类似与旧版本中的 box-lines,但是 box-lines 我们没有讲解,原因是没有浏览器支持它。代码如下:
/*设置无法容纳时,自动换行*/ div { -ms-flex-wrap: wrap; }
nowrap :默认值,都在一行或一列显示
wrap:伸缩项目无法容纳时,自动换行
wrap-reverse:伸缩项目无法容纳时,自动换行,方向和 wrap 相反
3.flex-flow
flex-flow 属性是集合了排列方向和控制换行的简写形式。代码如下:
/*简写形式*/ div { flex-flow: row wrap; }
4.justify-content
justify-content 属性和旧版本中的 box-pack 一样,设置伸缩项目的对其方式。代码如下:
/*按照中心点对齐*/ div { justify-content: space-around; }
flex-start:伸缩项目以起始点靠齐
flex-end:伸缩项目以结束点靠齐
center:伸缩项目以中心点靠齐
space-between :伸缩项目平局分布
space-around:同上,但两端保留一半的空间
5.align-items
align-items 属性和旧版本中的 box-align 一样,处理伸缩项目容器的额外空间。
/*处理额外空间*/ div { align-itmes: center; }
flex-start:伸缩项目以顶部为基准,清理下部额外空间
flex-end:伸缩项目以底部为基准,清理上部额外空间
center:伸缩项目以中部为基准,平均清理上下部额外空间
baseline:伸缩项目以基线为基准,清理额外的空间
stretch:伸缩项目填充整个容器,默认
6.align-self
align-self 和 align-items 一样,都是清理额外空间,但它是单独设置某一个伸缩项目的。所有的值和 align-itmes 一致。代码如下:
/*单独设置清理额外空间*/ p:nth-child(2) { align-self: center; }
7.flex
flex 属性和旧版本中的 box-flex 类似,用来控制伸缩容器的比例分配。
/*设置比例分配*/ p:nth-child(1) { flex: 1; } p:nth-child(2) { flex: 3; } p:nth-child(3) { flex: 1; }
8.order
order 属性和 box-ordinal-group 属性一样控制伸缩项目出现的顺序。
/*设置伸缩项目顺序*/ p:nth-child(1) { order: 2; } p:nth-child(2) { order: 3; } p:nth-child(3) { order: 1; }