分类
默认

居中对齐的实现方式

水平居中

  • inline 元素:text-align:center
  • block 元素:margin:auto
  • absolute 元素:left:50% + margin-left 宽度负值
<style>
    .container {
        border: 1px solid #ccc;
        margin: 10px;
        padding: 10px;
    }
    .item {
        background-color: #ccc;
    }
    .container-1 {
        text-align: center;
    }
    .container-2 .item {
        width: 500px;
        margin: auto;
    }
    .container-3 {
        position: relative;
        height: 100px;
    }
    .container-3 .item {
        width: 300px;
        height: 100px;
        position: absolute;
        left: 50%;
        margin-left: -150px;
    }
</style>
<div class="container container-1">
    <span>一段文字</span>
</div>
<div class="container container-2">
    <div class="item">
        this is block item
    </div>
</div>
<div class="container container-3">
    <div class="item">
        this is absolute item
    </div>
</div>

垂直居中

  • inline 元素:line-height 的值等于 height 值
  • absolute 元素:top:50% + margin-top 高度负值
  • absolute 元素:top:50% + left:50% + transform(-50%,-50%)
  • absolute 元素:top,left,bottom,right=0 + margin:auto
<style>
    .container {
        border: 1px solid #ccc;
        margin: 10px;
        padding: 10px;
        height: 200px;
    }
    .item {
        background-color: #ccc;
    }
    .container-1{
        text-align: center;
        line-height: 200px;
        height: 200px;
    }
    .container-2 {
        position: relative;
    }
    .container-2 .item {
        width: 300px;
        height: 100px;
        position: absolute;
        left: 50%;
        margin-left: -150px;
        top: 50%;
        margin-top: -50px;
    }
    .container-3 {
        position: relative;
    }
    .container-3 .item {
        width: 200px;
        height: 80px;
        position: absolute;
        left: 50%;
        top: 50%;
        transform: translate(-50%, -50%)
    }
    .container-4 {
        position: relative;
    }
    .container-4 .item {
        width: 100px;
        height: 50px;
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
        margin: auto;
    }
</style>
<div class="container container-1">
    <span>一段文字</span>
</div>
<div class="container container-2">
    <div class="item">
        this is item
    </div>
</div>
<div class="container container-3">
    <div class="item">
        this is item
    </div>
</div>
<div class="container container-4">
    <div class="item">
        this is item
    </div>
</div>