美文网首页
Flex 布局&&垂直居中

Flex 布局&&垂直居中

作者: xiamihaozi | 来源:发表于2017-12-20 15:20 被阅读0次

    html

    <div class="wrapper">
      <div>1111111111111111111111</div>
      <div>2222222222222222222222</div>
      <div>3333333333333333333333</div>
      <div>4444444444444444444444</div>
    </div>
    

    </div>

    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 布局&&垂直居中

          本文链接:https://www.haomeiwen.com/subject/kcmgwxtx.html