码迷,mamicode.com
首页 > 其他好文 > 详细

总结div里面水平垂直居中的实现方法

时间:2018-06-26 23:48:00      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:如何   ica   display   col   表格   很多   strong   border   标签   

  最近经常碰到要垂直居中的问题,所以想着总结一下:关于如何设置小盒子在大盒子里面水平垂直方向同时居中的实现方法有很多种,下面仅列举了常用的几种。

  首先看一下要实现的效果图及对应的html代码:

技术分享图片

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

1、使用定位的方法

.parent {
    width: 300px;
    height: 200px;
    border: 1px solid red;
    position:relative;
}
.child {
    width: 100px;
    height: 100px;
    border: 1px solid violet;
    position:absolute;
    top: 50%;
    left:50%;
    margin-top: -50px;     /*这里是小盒子高的一半*/
    margin-left: -50px;    /*这里是小盒子宽的一半*/
}

  还有就是子元素宽高不固定时

//vertical center
.vertical-center{
  position absolute
  top 50%
  transform translate(0,-50%)
}
.vertical-horizontal{
  position absolute
  left 50%
  top 50%
  transform translate(-50%,-50%)
}

2、利用定位及margin:auto实现

.parent {
    width: 300px;
    height: 200px;
    border: 1px solid red;
    position:relative;
}
.child {
    width: 100px;
    height: 100px;
    border: 1px solid violet;
    position: absolute;
    margin: auto;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

  实现原理是设置margin自动适应,然后设置定位的上下左右都为0,就如四边均衡受力从而实现盒子的居中;

3、使用display:table-cell;

.parent {
  width: 300px;
  height: 200px;
  border: 1px solid red;
  display: table-cell;
  vertical-align: middle;
  text-align: center;
}
.child {
  width: 100px;
  height: 100px;
  border: 1px solid violet;
  display: inline-block;
}

  实现原理:display:table-cell属性指让标签元素以表格单元格的形式呈现,类似于td标签;组合使用vertical-align、text-align,可以使父元素内的所有行内元素水平垂直居中(也就是将内部的元素设置display:inline-block)

4、使用伸缩布局display:flex

.parent {
  width: 300px;
  height: 200px;
  border: 1px solid red;
  display: flex;
  justify-content: center;  /*水平居中*/
  align-items: center;      /*垂直居中*/
}
.child {
  width: 100px;
  height: 100px;
  border: 1px solid violet;
}

 

总结div里面水平垂直居中的实现方法

标签:如何   ica   display   col   表格   很多   strong   border   标签   

原文地址:https://www.cnblogs.com/goloving/p/9231672.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!