Transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。还可以用来对元素进行居中布局。

很早以前了解过当元素是固定宽度和高度的时候,水平垂直高居中的方法可以设置 margin 的负值来使其居中,这个负值是元素的宽和高的一半,比如宽高是 100px,那么就用 margin-left: -50px;margin-top: -50px 这样的写法。但如果这个元素的宽高是用百分比表示呢?

如果使用百分比来设置宽高的话,以前哪个负值方法已经用不上了,这个我们发现在一个小的窍门,就是使用 CSS3 中的 transformtranslate 转换属性。下面来看代码实例:

HTML代码:
<div class="center">您可以尝试改变浏览器大小,这个元素依然是水平垂直居中的哦!</div>
CSS代码:
.center {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 50%;
    height: 30%;
    padding: 20px;
    text-align: center;
    background: #393;
    color: #fff;
    webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}