CSS 转换

312 阅读3分钟

translate() 方法

image.png

translate() 方法从其当前位置移动元素(根据为 X 轴和 Y 轴指定的参数)。下面的例子把 <div> 元素从其当前位置向右移动 50 个像素,并向下移动 100 个像素:

div {
  transform: translate(50px, 100px);
}

x, y 可为负数,表示向相反方向平移;也可以用百分比,表示按自身大小平移--未知宽高平移;

rotate() 方法

image.png

rotate() 方法根据给定的角度顺时针或逆时针旋转元素。 下面的例子把 <div> 元素顺时针旋转 20 度:

div {
  transform: rotate(20deg);
}

使用负值将逆时针旋转元素。 下面的例子把 <div> 元素逆时针旋转 20 度:

div {
  transform: rotate(-20deg);
}

scale() 方法

image.png

scale() 方法增加或减少元素的大小(根据给定的宽度和高度参数)。 下面的例子把 <div> 元素增大为其原始宽度的两倍和其原始高度的三倍:

div {
  transform: scale(2, 3);
}

下面的例子把 <div> 元素减小为其原始宽度和高度的一半:

div {
  transform: scale(0.5, 0.5);
}

skew() 方法

skew() 方法使元素沿 X 和 Y 轴倾斜给定角度。 下面的例子使 <div> 元素沿 X 轴倾斜 20 度,同时沿 Y 轴倾斜 10 度:

div {
  transform: skew(20deg, 10deg);
}

image.png

如果未指定第二个参数,则值为零。因此,下例使 <div> 元素沿 X 轴倾斜 20 度:

div {
  transform: skew(20deg);
}

image.png

image.png

image.png

元素的中心点不变skewX(x) x为正相当于水平向右推,角度越大,变形越厉害。skewY(y) y为正相当于垂直向下推,角度越大,变形越厉害。

matrix() 方法

image.png

matrix() 方法把所有 2D 变换方法组合为一个。

matrix() 方法可接受六个参数,其中包括数学函数,这些参数使您可以旋转、缩放、移动(平移)和倾斜元素。

参数如下:matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())

div {
  transform: matrix(1, -0.3, 0, 1, 0, 0);
}

CSS 转换属性

属性描述
transform向元素应用 2D 或 3D 转换。
transform-origin允许你改变被转换元素的位置。

CSS 2D 转换方法

函数描述
matrix(n,n,n,n,n,n)定义 2D 转换,使用六个值的矩阵。
translate(x,y)定义 2D 转换,沿着 X 和 Y 轴移动元素。
translateX(n)定义 2D 转换,沿着 X 轴移动元素。
translateY(n)定义 2D 转换,沿着 Y 轴移动元素。
scale(x,y)定义 2D 缩放转换,改变元素的宽度和高度。
scaleX(n)定义 2D 缩放转换,改变元素的宽度。
scaleY(n)定义 2D 缩放转换,改变元素的高度。
rotate(angle)定义 2D 旋转,在参数中规定角度。
skew(x-angle,y-angle)定义 2D 倾斜转换,沿着 X 和 Y 轴。
skewX(angle)定义 2D 倾斜转换,沿着 X 轴。
skewY(angle)定义 2D 倾斜转换,沿着 Y 轴。

CSS 3D 转换方法

函数描述
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n)定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate3d(x,y,z)定义 3D 转化。
translateX(x)定义 3D 转化,仅使用用于 X 轴的值。
translateY(y)定义 3D 转化,仅使用用于 Y 轴的值。
translateZ(z)定义 3D 转化,仅使用用于 Z 轴的值。
scale3d(x,y,z)定义 3D 缩放转换。
scaleX(x)定义 3D 缩放转换,通过给定一个 X 轴的值。
scaleY(y)定义 3D 缩放转换,通过给定一个 Y 轴的值。
scaleZ(z)定义 3D 缩放转换,通过给定一个 Z 轴的值。
rotate3d(x,y,z,angle)定义 3D 旋转。
rotateX(angle)定义沿 X 轴的 3D 旋转。
rotateY(angle)定义沿 Y 轴的 3D 旋转。
rotateZ(angle)定义沿 Z 轴的 3D 旋转。
perspective(n)定义 3D 转换元素的透视视图。