CSS 2D na pagbabagong hugis

CSS 2D na pagbabagong hugis

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 轴指定的参数)。

下面的例子把 <div> 元素从其当前位置向右移动 50 个像素,并向下移动 100 个像素:

实例

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

親自試試

rotate() 方法

Rotate

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

下面的例子把 <div> 元素顺时针旋转 20 度:

实例

div {
  transform: rotate(20deg);
}

親自試試

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

下面的例子把 <div> 元素逆时针旋转 20 度:

实例

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

親自試試

scale() 方法

Scale

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

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

实例

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

親自試試

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

实例

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

親自試試

scaleX() 方法

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

下面的例子把 <div> 元素增大为其原始宽度的两倍:

实例

div {
  transform: scaleX(2);
}

親自試試

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

实例

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) Tutukoy ang 2D na pagbabagong pagkabukod, pagbabago ang lapad at taas ng elemento.
scaleX(n) Tutukoy ang 2D na pagbabagong pagkabukod, pagbabago ang lapad ng elemento.
scaleY(n) Tutukoy ang 2D na pagbabagong pagkabukod, pagbabago ang taas ng elemento.
rotate(angle) Tutukoy ang 2D na pagbabagong pag-ikot, sa pamamagitan ng ang mga parametro na tinukoy ang angle.
skew(x-angle,y-angle) Tutukoy ang 2D na pagbabagong pahinga, sa tabi ng X at Y axis.
skewX(angle) Tutukoy ang 2D na pagbabagong pahinga, sa tabi ng X axis.
skewY(angle) Tutukoy ang 2D na pagbabagong pahinga, sa tabi ng Y axis.