translate()进行水平垂直居中

html

<div class="load_box">
    <div class="load_cont">
        <div class="load_img"></div>
        加载失败,稍后再试
    </div>
</div>  

css

.load_box {
    height: 100%;
    width: 100%;
    position: relative;
}
.load_cont {
    position: absolute;
    width: 9.733333333333333rem;
    top: 50%;
    left: 50%;
    text-align: center;
    -moz-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -moz-transform: translate3d(-50%, -50%, 0);
    -webkit-transform: translate3d(-50%, -50%, 0);
    transform: translate3d(-50%, -50%, 0);
}
.load_img {
    height: 5.466666666666667rem;
    width: 9.733333333333333rem;
    background: transparent url(ic_error.png) no-repeat center center;
    font-size: 1.1rem;
    color: #999999;
    margin-bottom: 10px;
    background-size: 100%;
}

margin-left

.load_cont{position: absolute; height:5.466666666666667rem; width: 9.733333333333333rem;  top: 40%; left: 50%; margin-left: -4.87rem; text-align: center;}

margin-left必须知道自身的宽高,而translate可以在不知道宽高的情况下进行居中,tranlate()函数中的百分比是相对于自身宽高的百分比,所以能进行居中.

兼容性: Internet Explorer 10、Firefox、Opera 支持 transform 属性。
Internet Explorer 9 支持替代的 -ms-transform 属性(仅适用于 2D 转换)。
Safari 和 Chrome 支持替代的 -webkit-transform 属性(3D 和 2D 转换)。
ie9以下不能使用,所以在使用时要考虑浏览器版本问题.

猜你喜欢

转载自blog.csdn.net/gqzydh/article/details/82588587