1、如何让元素使用flex布局
给元素添加 flex 或 inline-flex 样式
- flex 在宽度不够使,直接换行显示
- inline-flex 在宽度不够时,显示一半,剩下的下一行接着显示。
div {display: flex; /* inline-flex */}
当元素添加 flex 后,添加 flex 的元素称为 容器,我们可以通过添加属性控制其内部子元素的排列方式。
2、改变元素流动方向
给 flex 容器,添加 flex-direction 样式
- row 从左往右排列
- row-reverse 从右往左排列
- colum 从上往下排列
- colum-reverse 从下往上排
div {display: flex;flex-direction: row; /* row-reverse colum colum-reverse */}
3、元素是否换行
flex 的子元素是默认不会换行,当一行的子元素过多时,他们会自适应的相互挤压。
给 flex 容器,添加 flex-wrap 样式,即可控制是否换行
- no-wrap 不换行(默认)
- wrap 换行
- wrap-reverse 倒叙换行(简单来说就是与wrap的顺序反了过来)
div {display: flex;flex-wrap: wrap; /* no-wrap wrap-reverse */}
4、元素水平对齐元素
给 flex 容器添加 justify-content 样式
- flex-start 元素和容器的左端对齐
- flex-end 元素和容器的右端对齐
- center 元素在容器里居中
- space-between 元素之间保持相等的距离
- space-around 元素周围保持相等的距离
- space-evenly 在 around 基础上,全部空隙自适应
div {display: flex;justify-content: space-between; /* flex-start flex-end center space-around space-evenly */}
5、元素纵轴的分布方式
给 flex 容器添加 align-items 样式
- flex-start 顶端对齐
- flex-end 底端对齐
- center 居中对齐
- stretch 铺满
- baseline 基线对齐(用不到,可以不用管)
div {display: flex;align-items: flex-start; /* flex-end center stretch baseline */}
6、多行布局
上面都是默认当行的情况下,现在是多行布局
给 flex 容器添加 align-content 样式
- flex-start 全部挤在顶端
- flex-end 全部挤在底端
- center 全部挤在中间
- stretch 全部平均的铺满
- space-between 分别上中下对齐
- space-around 在上中下对齐的基础上,全部间隙相同
div {display: flex;align-content: stretch; /* flex-start flex-end center stretch space-between space-around */}
7、改变子元素排列的顺序
给 flex 容器内的,子元素盒子添加 order 样式
数字越小越靠前,越大越靠后
div {display: flex;order: -11; /* 负数 0 正数 */}
8、控制子元素所占比
给 flex 容器内的,子元素添加 flex-grow 样式
用数字表示每个子元素所在大小
例如:两边盒子各占4分之1,中间盒子占4分之2
child1 {flex-frow: 1;}child2 {flex-frow: 2;}child3 {flex-frow: 1;}
9、固定子元素所占比
给 flex 容器内的,子元素添加 flex-shrink 样式
div {flex-shrink: 0;}
