CSS

适用范围:

  • 不会影响布局

1. 作用:

Transform属性应用于元素的2D或3D转换。这个属性允许你将元素旋转,缩放,移动,倾斜等。

性能

  • transform一般都有gpu加速,所以性能要高一点
  • translate不会引起重排

实例:

旋转 div 元素:

div{
    transform:rotate(7deg);
    -ms-transform:rotate(7deg); /* IE 9 */
    -webkit-transform:rotate(7deg); /* Safari and Chrome */
}

基本概念

基准点

child::基准点

坐标系

child::变换坐标系

语法:

2. 针对基准点进行变化

属性值描述
none定义不进行转换。
matrix(n,n,n,n,n,n)定义 2D 转换,使用六个值的矩阵。
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate(x,y)⭐定义 2D 转换。
translate3d(x,y,z)定义 3D 转换。
translateX(x)定义转换,只是用 X 轴的值。
translateY(y)定义转换,只是用 Y 轴的值。
translateZ(z)定义 3D 转换,只是用 Z 轴的值。
scale(x[,y]?)定义 2D 缩放转换。
scale3d(x,y,z)定义 3D 缩放转换。
scaleX(x)通过设置 X 轴的值来定义缩放转换。
scaleY(y)通过设置 Y 轴的值来定义缩放转换。
scaleZ(z)通过设置 Z 轴的值来定义 3D 缩放转换。
rotate(angle)⭐定义 2D 旋转,在参数中规定角度。
rotate3d(x,y,z,angle)定义 3D 旋转。rotate3d
rotateX(angle)定义沿着 X 轴的 3D 旋转。
rotateY(angle)定义沿着 Y 轴的 3D 旋转。
rotateZ(angle)定义沿着 Z 轴的 3D 旋转。
skew(x-angle,y-angle)定义沿着 X 和 Y 轴的 2D 倾斜转换。
skewX(angle)⭐定义沿着 X 轴的 2D 倾斜转换。
skewY(angle)定义沿着 Y 轴的 2D 倾斜转换。
perspective(n)为 3D 转换元素定义透视视图。
  • 对于偏移变化的x,y,z值, 都可以使用px, 百分比等css单位
    • 百分比是相对于自己的长宽

同时应用多个变换

你可以同时应用多个转换,只需在 transform 属性中使用空格分隔它们即可。

示例

例如:

div {
    transform: rotate(45deg) scale(1.5);
}

这将使元素旋转45度并放大1.5倍。你还可以按照需要添加更多的转换函数来创建复杂的效果。

注意

因为transform是一个属性,不能同时声明多个不同值得transform来应用多个变化,这样会变成覆盖