div居中

 <div class="parentDiv">
      <div class="childDiv"></div>
    </div>
.parentDiv {
    width:400px;
    height: 100px;
    background-color: #00ff00;
    margin: 20px;
  }
  
  .childDiv {
      width: 200px;
      height:50px;
      background-color: #ff0000;
  }

方法一:margin:0 auto

.childDiv{
    margin:0 auto;
  }

效果:

方法二:如果给子盒子div.childDiv设置display: inline-block不影响整体布局时,可以将子盒子转化为inline-block,对父盒子设置text-align:center实现居中对齐。CSS代码如下:

 .parentDiv {
    text-align: center;
}

  .parentDiv .childDiv {
      display: inline-block;
  }

方法三(实现了水平垂直居中):将父盒子设置为table-cell元素,可以使用text-align: center;和vertical-align: middle;实现水平、垂直居中。比较好的解决方案是利用三层结构模拟父子结构。这里写两层的:

.parentDiv{
  display: table-cell;
    text-align: center;
    vertical-align: middle;
}

.childDiv {
    display: inline-block;
}

方法四:绝对定位居中(利用margin实现偏移)

.parentDiv {
    position: relative;
}

.parentDiv .childDiv {
    position: absolute;
    left:50%;
    top:50%;
/*利用margin实现偏移,设置为宽度和高度的一半的负值 */
 margin-left:-100px; 
 margin-top:-25px; 
}

方法五:绝对定位居中(利用transform实现偏移)

.parentDiv {
    position: relative;
}

.parentDiv .childDiv {
    position: absolute;
    left:50%;
    top:50%;
    transform: translate(-50%,-50%);
}

方法六:绝对定位居中(利用margin:auto实现偏移)

  同样对子盒子实现绝对定位,这里使用top、right、bottom、left均为0,margin为auto实现偏移

/*绝对定位实现居中,margin:auto实现偏移*/
.parentDiv {
    position: relative;
}

.parentDiv .childDiv {
    position: absolute;
    left:0; /*top、right、bottom、left均为0*/
    top:0;
    right: 0;
    bottom: 0;
    margin: auto;
}

方法七:使用弹性盒模型(flexbox)实现居中。

.parentDiv {
    display: -webkit-box; /*Safari*/
    display: -moz-box; /*Firefox*/
    display: -ms-flexbox; /*IE*/
    display: -webkit-flex; /*Chrome*/
    display: flex; 
    -webkit-box-align: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    -webkit-align-items: center;
    align-items: center;
    -webkit-box-pack: center;
    -moz-box-pack: center;
    -ms-flex-pack: center;
    -webkit-justify-content: center;
    justify-content: center;
}

 

 方法八:使用弹性盒模型(flexbox)实现居中(子元素间的margin被改变了,区别方法七)

.parentDiv{
      display: flex;
      display:-webkit-flex;
    }
.childDiv{
    margin:auto;  
}

 

 

posted @ 2019-03-16 22:18  cecelia  阅读(153)  评论(0编辑  收藏  举报