5种常用方法实现垂直居中

130 阅读1分钟

方法1: margin-top -50%

<div class="parent">
  <div class="child"> 内容 </div>
</div>
.parent{
  height: 400px;
  border: 1px solid red;
  position: relative;
}
.child{
  border: 1px solid green;
  width: 100px;
  height: 100px;
  position: absolute; 
  top: 50%;
  left: 50%;
  margin-left: -50px;
  margin-top: -50px;
}

方法2: translate -50%

<div class="parent">
  <div class="child"> 内容 </div>
</div>
.parent{
  height: 400px;
  border: 1px solid red;
  position: relative;
}
.child{
  border: 1px solid green;
  width: 100px;
  height: 100px;
  position: absolute; 
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%)
}

方法3: absolute margin auto

<div class="parent">
  <div class="child"> 内容 </div>
</div>
.parent{
  height: 400px;
  border: 1px solid red;
  position: relative;
}
.child{
  border: 1px solid green;
  width: 100px;
  height: 100px;
  position: absolute; 
  margin: auto;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

方法4:flex

<div class="parent">
  <div class="child"> 内容 </div>
</div>
.parent{
  height: 400px;
  border: 1px solid red;
  display: flex;
  justify-content: center;
  align-items: center;
}
.child{
  border: 1px solid green;
  width: 100px;
  height: 100px;
}

方法5:table自带功能

  <table class="parent">
    <tr>
      <td class="child">内容</td>
    </tr>
  </table>