常见的几种水平垂直居中方法

自己总结的几种水平、垂直的居中方法如下

<div class="parent" id="parent">
  <div class="child" id="child">DEMO</div>
</div>

 

块级水平居中
1、使用inline-block+text-align ( 行内元素水平居中 父元素用text-align:center )
  对子框设置display:inline-block,对父框设置text-align:center
  例子如下
  .child{
    display:inline-block;
  }
  .parent{
    text-align:center;
  }

  优点 兼容性好,甚至可以兼容ie6、ie7
  缺点 child里的文字也会水平居中,可以在.child添加text-align:left;还原


  2、使用table+margin ( 块级元素水平居中 子元素用margin:0 auto )
  对子框设置display:table,再设置margin:0 auto。
  例子如下
  .child
    margin:0 auto;
  }
  优点:只设置了child,ie8以上都支持
  缺点:不支持ie6、ie7,将div换成table


  3、ie6 7 8不兼容
  .parent{
    display:flex;
  }
  .child{
    margin:0 auto;
  }


  4、ie6 7 8不兼容
  .parent{
    display:flex;
    justify-content:center;
  }

  5、transform属于css3内容
  .parent{
    position:relative;
  }
  .child{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
  }


垂直居中

  1、ie8以上均支持
  .parent{
    display:table-cell;
    vertical-align:middle;
  }

  2、transform属于css3内容
  .parent{
    position:relative;
  }
  .child{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
  }


水平垂直居中

  1、.parent{
    position:relative;
  }
  .child{
    position:absolute;
    top:50%;
    left:50%;
    transform:translate(-50%,-50%);
  }


  2、.parent{
    text-align:center;
    display:table-cell;
    vertical-align:middle;
  }
  .child{
    display:inline-block;
  }

  3、.parent{
    display:flex;
    justify-content:center;
    align-items:center;
  }


  4、( vertical-align只对行内元素有效 所以需要用display:table-cell转为单元格 )
  .parent{
    display:table-cell;
    vertical-align:middle;

  }

  .child{
    margin:0 auto;

  }

________________________________________________________

小伙伴们可以尝试下,有疑问可联系

posted @ 2018-06-20 15:35  茅毛  阅读(942)  评论(0编辑  收藏  举报