首页 > 技术文章 > Flex弹性盒子布局

wrpuser 2018-02-13 17:55 原文

首先,设置伸缩盒的 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;
}

 

推荐阅读