Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。
我们为父级盒子设置为flex布局以后子元素的 float,clear 和vertical-align属性将失效
任何一个容器都可以指定为Flex布局。flex 布局有两个值:
采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。
就是通过给父级盒子添加flex属性,来控制子盒子的位置和排列方式
主轴和侧轴
在flex布局中,是分为主轴和侧轴两个方向,同样的叫法有行和列x轴y轴
我们的元素是跟着主轴来排列的
属性值
flex-direction属性决定了主轴的方向(即项目的排列方向)
- row:主轴的方向是水平,从左到右
- column:主轴的方向是垂直的,从上到下
- row-reverse:主轴的方向是水平,从右到左
- column-reverse:主轴的方向是垂直的,从下到上
默认情况下,项目都排着一条线上(又称"轴线")上. flex-warp属性定义,flex中默认不换行.如果装不开会缩小子元素的宽度放到父元素里面
- wrap: 换行
- nowrap: 不换行(默认)
注意使用这个属性之前一定确定好主轴是哪个
- flex-start |默认值从头部开始,如果主轴是x轴就是从左到右
- flex-end |从尾部开始排列
- center |在主轴居中对齐
- space-between |先两边贴边在平分剩余空间(重要)
- space-around| 平分剩余空间
该属性控制子项在侧轴(默认是用轴)上的排列方式,在子项为单项的时候使用
flex-start |从上到下
flex-end |从下到上
center |挤在一起居中(垂直居中)(重要)
stretch|拉伸(默认值) 子盒子不要给高度
设置子项在侧轴上的排列方式,并且只能用于子项出现换行的情况(多行)在单行下没有效果
- flex-start |默认值在侧轴的头部开始排列
- flex-end |在侧轴的尾部开始排列
- center |在侧轴中间显示
- space-between |子项在侧轴先分布在两头,在平分剩余空间
- space-around |子项在在侧轴平分剩余空间
- stretch; 设置子项元素高度为父元素的高度
1.align-self控制子项自己在侧轴上的排列方式
align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。
.item { align-self: auto | flex-start | flex-end | center | baseline | stretch; }
2.flex子项占的份数
属性定义子项分配剩余空间,用flex来表示占多少份
3.order属性定义子项的排列属性(前后顺序)
order属性定义项目的排列顺序。数值越小,排列越靠前,默认为0。
注意和z-index不一样
---------------------------------------------------完结------------------------------------------------------------------
--------------------------接受大佬们的批改,欢迎留言评论-------------------------------------------------------