实现垂直居中

96 阅读1分钟

flex布局 控制子元素

  <div class="parent">
    <div class="child">
      垂直居中垂直居中垂直居中垂直居中
    </div>
  </div>
.parent{
  border:1px solid red;
  height:600px;
  display:flex;
  justify-content:center;
}
.child{
  border:1px solid yellow;
  align-self: center;
}

flex布局 控制父元素

  <div class="parent">
    <div class="child">
      垂直居中垂直居中垂直居中垂直居中
    </div>
  </div>
.parent{
  border:1px solid red;
  height:600px;
  display:flex;
  justify-content:center;
  align-items:center;
}
.child{
  border:1px solid yellow;
}

绝对定位 margin:auto

  <div class="parent">
    <div class="child">
      垂直居中垂直居中垂直居中垂直居中
    </div>
  </div>
.parent{
  border:1px solid red;
  height:600px;
  position:relative;
}
.child{
  width:300px;
  height:100px;
  border:1px solid yellow;
  position:absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}

相对定位 负margin

  <div class="parent">
    <div class="child">
      垂直居中垂直居中垂直居中垂直居中
    </div>
  </div>
.parent{
  border:1px solid red;
  height:600px;
  width:600px;
  position:absolute;
}
.child{
  width:300px;
  height:100px;
  border:1px solid yellow;
  position:relative;
  top:50%;
  left:50%;
  margin-top:-50px;
  margin-left:-150px;
}

相对定位 transform

  <div class="parent">
    <div class="child">
      垂直居中垂直居中垂直居中垂直居中
    </div>
  </div>
.parent{
  border:1px solid red;
  height:600px;
  width:600px;
  position:absolute;
}
.child{
  width:300px;
  height:100px;
  border:1px solid yellow;
  position:relative;
  top:50%;
  left:50%;
  transform:translateX(-50%) translateY(-50%)
}

div 装成table

  <div class="parent">
    <div class="child">
      垂直居中垂直居中垂直居中垂直居中
    </div>
  </div>
.parent{
  border:1px solid red;
  display:table;
  width:600px;
  height:600px;
  text-align:center;
}
.child{
  border:1px solid yellow;
  display:table-cell;
  vertical-align:middle;
}

table 布局

<table class="parent">
   <tr>
      <td class="child">
        垂直居中垂直居中垂直居中垂直居中
      </td>
   </tr>
</table>
.parent{
  border:1px solid red;
  height:600px;
  width:600px;
  text-align:center;
}
.child{
  border:1px solid yellow;
}