CSS 2D transformations

CSS 2D transformations

CSS 转换(transforms)允许您移动、旋转、缩放和倾斜元素。

把鼠标悬停在下面的元素上,可以查看 2D 转换:

2D rotate

在本章中,您将学习如下 CSS 属性:

  • transform

浏览器支持

表格中的数字指注明了完全支持该属性的首个浏览器版本。

属性 Chrome IE Firefox Safari Opera
transform 36.0 10.0 16.0 9.0 23.0

CSS 2D 转换方法

通过使用 CSS transform 属性,您可以利用以下 2D 转换方法:

  • translate()
  • rotate()
  • scaleX()
  • scaleY()
  • scale()
  • skewX()
  • skewY()
  • skew()
  • matrix()

提示:您将在下一章中学习 3D 转换。

translate() 方法

Translate

translate() 方法从其当前位置移动元素(根据为 X 轴和 Y 轴指定的参数)。

下面的例子把

元素从其当前位置向右移动 50 个像素,并向下移动 100 个像素:

实例

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

亲自试一试

rotate() 方法

Rotate

rotate() 方法根据给定的角度顺时针或逆时针旋转元素。

下面的例子把

元素顺时针旋转 20 度:

实例

div {
  transform: rotate(20deg);
}

亲自试一试

使用负值将逆时针旋转元素。

下面的例子把

元素逆时针旋转 20 度:

实例

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

亲自试一试

scale() 方法

Scale

scale() 方法增加或减少元素的大小(根据给定的宽度和高度参数)。

下面的例子把

元素增大为其原始宽度的两倍和其原始高度的三倍:

实例

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

亲自试一试

下面的例子把

元素减小为其原始宽度和高度的一半:

实例

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

亲自试一试

scaleX() 方法

scaleX() 方法增加或减少元素的宽度。

dabbobin kanamawa <div> element zuwa kafin kafin kafin kafin:

实例

div {
  transform: scaleX(2);
}

亲自试一试

dabbobin kanamawa <div> element zuwa kafin kafin kafin kafin:

实例

div {
  transform: scaleX(0.5);
}

亲自试一试

scaleY() 方法

scaleY() 方法增加或减少元素的高度。

下面的例子把 <div> 元素增大到其原始高度的三倍:

实例

div {
  transform: scaleY(3);
}

亲自试一试

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

实例

div {
  transform: scaleY(0.5);
}

亲自试一试

skewX() 方法

skewX() 方法使元素沿 X 轴倾斜给定角度。

下例把 <div> 元素沿X轴倾斜 20 度:

实例

div {
  transform: skewX(20deg);
}

亲自试一试

skewY() 方法

skewY() 方法使元素沿 Y 轴倾斜给定角度。

下例把 <div> 元素沿 Y 轴倾斜 20 度:

实例

div {
  transform: skewY(20deg);
}

亲自试一试

skew() 方法

skew() 方法使元素沿 X 和 Y 轴倾斜给定角度。

下面的例子使 <div> 元素沿 X 轴倾斜 20 度,同时沿 Y 轴倾斜 10 度:

实例

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

亲自试一试

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

实例

div {
  transform: skew(20deg);
}

亲自试一试

matrix() 方法

Rotate

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

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

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

实例

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

亲自试一试

CSS 转换属性

下表列出了所有 2D 变换属性:

属性 描述
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) Define 2D scaling transformation, changing the width and height of the element.
scaleX(n) Define 2D scaling transformation, changing the width of the element.
scaleY(n) Define 2D scaling transformation, changing the height of the element.
rotate(angle) Define 2D rotation, specifying the angle in the parameters.
skew(x-angle,y-angle) Define 2D skew transformation, along the X and Y axes.
skewX(angle) Define 2D skew transformation, along the X-axis.
skewY(angle) Define 2D skew transformation, along the Y-axis.