Flex 布局&&垂直居中

html

1111111111111111111111
2222222222222222222222
3333333333333333333333
4444444444444444444444

css

 .wrapper{       
        width: 100%;
        height: 100px;
        display: flex;
        display: -webkit-flex;
        background-color: antiquewhite;
        /*flex-direction: column-reverse;*/
        /*flex-wrap: wrap-reverse;*/
        /*flex-flow: row wrap;*/
        /*主轴对齐方式flex-start | flex-end | center | space-between | space-around*/
        justify-content:center;
        /*交叉轴对齐方式flex-start | flex-end | center | baseline | stretch*/
        align-items:center ;
        /*多根轴线的对齐方式flex-start | flex-end | center | space-between | space-around | stretch*/
        align-content: center;
        color: black;
    }
    .wrapper div{
        /*order属性定义项目的排列顺序,数值越小,排列越靠前,默认为0*/
        order: 1;
        /*flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。*/
        flex-grow:0;
        /*flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。*/
        flex-shrink: 1;
        /*flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size),它的默认值为auto*/
        flex-basis: auto;
        /*flex属性是flex-grow, flex-shrink 和 flex-basis的简写,默认值为0 1 auto。后两个属性可选。*/
        flex:0 1 auto;
    }
    .wrapper div:nth-child(4){
        order: 0;
        /*align-self属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。默认值为auto,表示继承父元素的align-items属性,如果没有父元素,则等同于stretch。auto | flex-start | flex-end | center | baseline | stretch;*/
        align-self: auto;
    }

实现垂直居中:

1.不知道自己高度和父容器高度的情况下, 利用绝对定位只需要以下三行:

parentElement{
        position:relative;
    }

 childElement{
        position: absolute;
        top: 50%;
        transform: translateY(-50%);

 }

2.若父容器下只有一个元素,且父元素设置了高度,则只需要使用相对定位即可

    parentElement{
        height:xxx;
    }

    .childElement {
      position: relative;
      top: 50%;
      transform: translateY(-50%);
    }

3.Flex 布局:

parentElement{
    display:flex;/*Flex布局*/
    display: -webkit-flex; /* Safari */
    align-items:center;/*指定垂直居中*/
    justify-content:center;/*指定水平居中*/
}

你可能感兴趣的:(Flex 布局&&垂直居中)