常见问题总结

一.  元素垂直居中 的10种方法

  当元素宽高固定时:

    三种方法(都是用了脱离文档流的定位):

        absolute + 负margin

      absolute  + margin auto

      absolute  + calc 

    方法一:absolute  + margin 负值

      width:100px;

      height: 200px;

      left : 50%;

      top:  50%;

      margin-left:-50px;

      margin-top: -100px;

    方法二(宽高固定与不固定都可以用):

        absolute   +  margin auto  

      width : 100px;(50%)

      height:  200px;(50%)

      position :absolute;

      left:0;  top:0; right:0; bottom:0;

      margin:auto;

    方法三:

      absooute  +  calc

      width:100px;

      height:200px;

      position:absolute;

      left:calc(50%  -   50px);

      top:calc( 50%   -  100px);

  当元素宽高不固定时:

    方法四: position +  translate

      .fatherDiv{ 

        position:relative;

        width:

        height:  

      }

      .targetDiv{

        position: absolute;

        left 50%;

        top: 50%;

        tansform:translate(-50%, -50%);

      }

      方法五:

          line-hieght

        .parentDiv{

          line-height: 300px;

          text-align:center;

          font-size: 0;  

        }

        .targetDiv{

          font-size:16px;

          line-height:initial;

          text-align:left;

          display: inline-block;

          vertical-align:middle;

        }

      方法六:

        table

        利用表格的自带的垂直居中属性,将DIv放在td中,再加上text-align :center即可,但是缺点是会有冗余代码,也不是正确用法。

      方法七:

        display:table-cell;

        .parentDiv{

          display:table-cell;

          text-align:center;

          vertical-align:middle;

        }

        .targetDiv{

          display:inline-block;

        }

       方法八:

         优雅的 display :flex;

          .parentDiv{

            display : flex;

            justify-content: center;

            align-items: center;

          } 

      方法九:

        .parentDiv{

          display:grid;

        }

        .targetDiv{

          justify-self:center;

          algin-self: center;

        }

        

posted @ 2019-04-09 16:02  叶子不存在  阅读(115)  评论(0编辑  收藏  举报