1.flex-direction - 主轴方向
在flex布局中存在主轴,flex容器中的子项目都是沿着主轴排列的
我们可以通过flex-direction 属性来设置主轴的方向
属性值 | 说明 |
---|
row(默认) | 主轴设置为:横向 | row-reverse | 主轴设置为:横向且逆向 | column | 主轴设置为:纵向 | column-reverse | 主轴设置为:纵向且逆向 |
2.justify-content - 主轴子项目排列方式
通过设置justify-content 属性来设置子项目在主轴上的排列方式
属性值 | 说明 |
---|
flex-start(默认) | 从主轴首部开始排列 | flex-end | 从主轴尾部开始排列 | center | 在主轴居中对齐 | space-around | 平分剩余空间 | space-between | 首尾贴边,再平分剩余空间 |
-
以横轴为主轴时: -
以纵轴为主轴时:
3.flex-wrap - 子项目是否换行
通过flex-wrap 属性来设置:当父容器的主轴方向无法再容纳子项目时是否换行
属性值 | 说明 |
---|
nowrap(默认) | 不换行,让子项目变形 | wrap | 换行 |
-
默认(nowrap)是不换行的,无法容纳时会挤压子项目: -
warp换行:
4.align-items - 侧轴子项目排列方式(单行)
需要注意,align-items 属性只有元素不换行时才能正常生效。假如父容器设置了flex-wrap: wrap 且元素过多出现换行,此时align-items 属性就无效了
默认横向为主轴,默认纵向为侧轴
justify-content 设置子项目沿主轴的排列形式
align-items 用于设置子项目沿侧轴的排列形式
属性值 | 说明 |
---|
stretch(默认) | 子项目无高度时拉伸,有高度时从侧轴首部开始排列 | flex-start | 从侧轴首部开始排列 | flex-end | 从侧轴尾部开始排列 | center | 沿着侧轴居中 |
下图演示子项目的"水平居中 + 垂直居中":
- display: flex - 开启弹性布局
- justyfy-content: center - 主轴(默认横轴)子项目居中排列(水平居中)
- align-items: center - 侧轴(默认纵轴)子项目居中排列(垂直居中)
5.align-content - 侧轴子元素排列(多行)
父容器设置了flex-wrap: wrap 且元素过多出现换行,align-content 属性方才生效
也就是说,该属性只有在多行时才有效
属性值 | 说明 |
---|
flex-start(默认) | 从侧轴首部开始排列 | flex-end | 从侧轴尾部开始排列 | center | 沿着侧轴居中 | space-around | 平分剩余空间 | space-between | 首尾贴边,再平分剩余空间 | stretch(默认) | 子项目无高度时拉伸,有高度时从侧轴首部开始排列 |
6.flex-flow - 主轴方向、子项目是否换行
flex-flow 实际上是flex-direction 和flex-warp 的复合属性:
flex-flow: row wrap;
flex-flow: row nowrap;
flex-flow: row-reverse wrap;
flex-flow: row-reverse nowrap;
flex-flow: column wrap;
flex-flow: column nowrap;
flex-flow: column-reverse wrap;
flex-flow: column-reverse nowrap;
|