flex布局

282 阅读2分钟

flex布局

flex布局原理
flex是flexible Box的缩写,意为‘弹性布局’,用来为盒状模型提供最大的灵活性,任何一个容器都可以指定为flex布局。
当我们为父盒子设为flex布局后,子元素的float(浮动)、clear和vertical-align(对齐方式)属性将失效
伸缩布局=弹性布局=伸缩盒布局=弹性盒布局=flex布局
flex里面采用flex布局的父盒子叫容器,子盒子称为项目,子容器可以横向排列或纵向排列。
flex布局原理就是通过给父盒子添加flex属性,来控制子盒子的位置和排列方式

设置方法

    .box {
        display:flex;/*这是父类
        /*布局一般加在父盒子上,子盒子会会变成行内块元素,可以设置宽高
    }

flex布局父项常见属性

image.png

1. flex-direction

flex-direction默认的主轴是x轴、行、row 我们的元素是跟着主轴来排列的
注意:主轴和侧轴是会变化的,就看flex-direction设置谁为主轴,剩下的就是侧轴 image.png

2. justify-content

justify-content设置主轴上的子元素排列方式(对齐方式)
注意:使用这个属性之前一定哟啊确定好主轴是哪个 image.png

3. flex-wrap
    .box {
        display:flex;
        flex-wrap:nowrap://(默认)不换行
        
        flex-wrap:wrap;//换行,第一行在上方
        
        flex-wrap:wrap-reverse;//换行,第一行在下方
    }
4. align-items

(适用单行)侧轴align-items和justify-content的属性用法差不多,align-items里面有flex-start、flex--end、center(垂直居中)
stretch(拉伸)如果项目未设置高度或设为auto,将沾满整个容器的高度
baseline:项目的第一行文字的基线对齐

5. align-content

align-content设置侧轴上的子元素的排列方式换行(多行)的情况

image.png

6. flex-flow

flex-flow属性是flex-direction属性和flex-wrap属性的简写,默认是 row nowrap

flex子项常见属性

flex属性
flex属性定义子项目分配剩余空间,用flex表示占多少份数,flex后面跟数字表示分成几份。
如果盒子有宽度则从剩余的空间分配选择分配份数
align-self设置在侧轴单个盒子的排列方式,除了auto属性,其他都与align-items属性完全一致
order属性定义项目排列顺序,数值越小,排列越靠前,默认是0。