flex
容器
CSS 设定 display:flex
或者设定 display:inline-flex
时,就将当前盒子设置成容器了,容器有 6 个属性
属性 | 说明 |
---|---|
flex-direction | 主轴的方向 |
flex-warp | 排不下时的换行方式 |
flex-flow | 是flex-direction属性和flex-wrap属性的简写形式 |
justify-content | 主轴方向上的分布格式 |
align-items | 交叉轴方向上的对其方式 |
align-content | 有多个主轴时的交叉轴对其方式 |
flex-direction
决定主轴的方向(即项目的排列方向)。
取值 | 说明 |
---|---|
row | (默认值)主轴为水平方向,起点在左端 |
row-reverse | 主轴为水平方向,起点在右端。 |
column | 主轴为垂直方向,起点在上沿。 |
column-reverse | 主轴为垂直方向,起点在下沿 |
.box {
display:flex;
flex-direction: row | row-reverse | column | column-reverse;
}
flex-wrap
默认情况下,项目都排在一条线(又称"轴线")上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
取值 | 说明 |
---|---|
nowrap | (默认):不换行。 |
wrap | 换行,从上向下,第一行在上面 |
wrap-reverse | 换行,从下向上,第一行在下面 |
.box {
display:flex;
flex-wrap: nowrap | wrap | wrap-reverse
}
flex-flow
flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。
.box {
display:flex;
flex-flow: row nowrap;
}
justify-content
属性定义了项目在主轴上的对齐方式。和主轴是从左到右还是从右到左排布有关系。假设从左布局
取值 | 说明 |
---|---|
flex-start | (默认值):左对齐 |
flex-end | 右对齐 |
center | 居中 |
space-between | 两端对齐,项目之间的间隔都相等。 |
space-around | 每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。 |
.box {
display:flex;
justify-content: flex-start | flex-end | center | space-between | space-around|
}
align-items
align-items
属性定义项目在交叉轴上如何对齐。
取值 | 说明 |
---|---|
flex-start | 交叉轴的起点对齐。 |
flex-end | flex-end:交叉轴的终点对齐。 |
center | 交叉轴的中点对齐。 |
baseline | 项目的第一行文字的基线对齐。 |
stretch | (默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。 |
align-centent
align-content
属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
取值 | 说明 |
---|---|
flex-start | 与交叉轴的起点对齐。 |
flex-end | 与交叉轴的终点对齐。 |
center | 与交叉轴的中点对齐。 |
stretch | 与交叉轴两端对齐,轴线之间的间隔平均分布。 |
space-between | 每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。 |
space-around | (默认值):轴线占满整个交叉轴。 |