概述
transform 本意是变形,变换之意,在 CSS 中使用该属性可对元素进行移动(translate)、旋转(rotate)、缩放(scale)、倾斜(skew)等效果。因其有着各种特效及优良的性能,所以成为动画的标配。
在学习之前,我们可以简单欣赏下几个案例:
二维(2D)变换
translate
其语法为:transform: translate(tx[, ty])
。其中 tx 表示 x 方向偏移,ty 表示 y 方向偏移,如果 ty 没有指定值则为0。
还可以分拆为:transform: translateX(tx)
或 transform: translateY(ty)
。
简单示例如下(虚线框表示原先位置):
.box {
transform: translate(50px, 30px);
}
注:tx,ty 如果为百分比值的话,其参考计算的是元素本身的宽和高,而不是父元素的宽和高。所以经常使用该方法设置定位居中,代码如下:
.demo {
position: absolute;
top: 50%; /* 父元素高度的一半位置 */
left: 50%; /* 父元素宽度的一半位置 */
transform: translate(-50%, -50%); /* 元素本身的一半宽、高 */
}
scale
其语法为:transform: scale(sx[, sy])
。其中 sx 表示 x 方向的缩放比例,sy 表示 y 方向的缩放比例,如果 sy 没有指定值则与 sx 相等。
同样也可以分拆为:transform: scaleX(sx)
和 transform: scaleY(sy)
简