概述
CSS align-content属性定义弹性
容器的侧轴方向
上有额外空间时,如何排布每一行。当弹性容器只有一行时无作用
。
初始值 | stretch |
---|---|
适用元素 | multi-line flex containers |
是否是继承属性 | 否 |
适用媒体 | visual |
计算值 | as specified |
是否适用于 CSS 动画 | 否 |
正规顺序 | the unique non-ambiguous order defined by the formal grammar |
更多属性和信息参见使用CSS flexible boxes。
语法
/* Pack lines from the cross-axis start */
align-content: flex-start;
/* Pack lines to the cross-axis end */
align-content: flex-end;
/* Pack lines around the cross-axis center */
align-content: center;
/* Distribute lines along the cross-axis, start to end */
align-content: space-between;
/* Distribute lines along the cross-axis, equally spaced */
align-content: space-around;
/* Stretch lines to occupy the whole cross-axis */
align-content: stretch;
align-content: inherit;
取值
flex-start
- 所有行从垂直轴起点开始填充。第一行的垂直轴起点边和容器的垂直轴起点边对齐。接下来的每一行紧跟前一行。
flex-end
- 所有行从垂直轴终点开始填充。第一行的垂直轴终点边和容器的垂直轴终点边对齐。接下来的每一行紧跟前一行。
center
- 所有行朝向容器的中心填充。每行互相紧挨,相对于容器居中对齐。容器的垂直轴起点边和第一行的距离相等于容器的垂直轴终点边和最后一行的距离。
space-between
- 所有行在容器中平均分布。相邻两行间距相等。容器的垂直轴起点边和终点边分别与第一行和最后一行的边对齐。
space-around
- 所有行在容器中平均分布,相邻两行间距相等。容器的垂直轴起点边和终点边分别与第一行和最后一行的距离是相邻两行间距的一半。
stretch
- 拉伸所有行来填满剩余空间。剩余空间平均的分配给每一行
形式化语法
flex-start | flex-end | center | space-between | space-around | stretch
例子
HTML:
<div id="container">
<p>align-content: flex-start</p>
<div id="flex-start">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<p>align-content: center</p>
<div id="center">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<p>align-content: flex-end</p>
<div id="flex-end">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<p>align-content: space-between</p>
<div id="space-between">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<p>align-content: space-around</p>
<div id="space-around">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<p>align-content: stretch</p>
<div id="stretch">
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
</div>
</div>
CSS:
#container > div {
display: -webkit-flex;
display: -ms-flex;
display: flex;
-webkit-flex-flow: row wrap;
flex-flow: row wrap;
width: 140px;
height: 140px;
background: linear-gradient(-45deg, #78ff8c, #b4ffc8);
}
#container > div > div {
margin: 2px;
width: 30px;
min-height: 30px;
background: linear-gradient(-45deg, #788cff, #b4c8ff);
}
#flex-start {
-webkit-align-content: flex-start;
align-content: flex-start;
}
#center {
-webkit-align-content: center;
align-content: center;
}
#flex-end {
-webkit-align-content: flex-end;
align-content: flex-end;
}
#space-between {
-webkit-align-content: space-between;
align-content: space-between;
}
#space-around {
-webkit-align-content: space-around;
align-content: space-around;
}
#stretch {
-webkit-align-content: stretch;
align-content: stretch;
}
Results in:
规范
Specification | Status | Comment |
---|---|---|
CSS Flexible Box Layout Module align-content |
Candidate Recommendation |
浏览器兼容性
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 21.0-webkit | 28.0 | 未实现 | 12.10 | 未实现 |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | ? | ? | 28.0 | 未实现 | 12.10 | 未实现 |