最新的Web开发教程
 

CSS 2D变换


CSS3变换

CSS3转换让你平移,旋转,缩放和倾斜的元素。

转换是让一个元素改变形状,大小和位置的影响。

CSS3支持2D和3D转换。

将鼠标悬停在下面的内容看2D和3D变换之间的区别:

2D转
3D旋转

二维变换浏览器支持

在表中的数字规定,完全支持该属性的第一个浏览器版本。

数字其次-ms-, -webkit-, -moz- ,或-o- specify以一个前缀工作的第一个版本。

属性
transform36.0
4.0 -webkit-
10.0
9.0 -ms-
16.0
3.5 -moz-
3.2 -webkit-23.0
15.0 -webkit-
12.1
10.5 -o-
transform-origin
(two-value syntax)
36.0
4.0 -webkit-
10.0
9.0 -ms-
16.0
3.5 -moz-
3.2 -webkit-23.0
15.0 -webkit-
12.1
10.5 -o-

CSS3 2D变换

在本章中,您将了解以下2D转换方法:

  • translate()
  • rotate()
  • scale()
  • skewX()
  • skewY()
  • matrix()
注意提示:您将了解在下一章3D转换。

translate()方法

翻译

translate()方法(根据用于X轴和Y轴给出的参数)从其当前位置移动的元件。

下面的示例中移动<div>元素50像素的权利,以及100像素下从当前位置:

div {
    -ms-transform: translate(50px,100px); /* IE 9 */
    -webkit-transform: translate(50px,100px); /* Safari */
    transform: translate(50px,100px);
}
试一试»

rotate()方法

旋转

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

以下示例将旋转<div> 20度顺时针元素:

div {
    -ms-transform: rotate(20deg); /* IE 9 */
    -webkit-transform: rotate(20deg); /* Safari */
    transform: rotate(20deg);
}
试一试»

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

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

div {
    -ms-transform: rotate(-20deg); /* IE 9 */
    -webkit-transform: rotate(-20deg); /* Safari */
    transform: rotate(-20deg);
}
试一试»

scale()方法

规模

scale()方法增加或减少(根据为宽度和高度给出的参数)的元件的尺寸。

下面的例子中增加<div>元素是其原始宽度的两倍,并且其原始高度的三倍:

div {
    -ms-transform: scale(2,3); /* IE 9 */
    -webkit-transform: scale(2,3); /* Safari */
    transform: scale(2,3);
}
试一试»

下面的例子降低<div>元素是原来的一半宽度和高度:

div {
    -ms-transform: scale(0.5,0.5); /* IE 9 */
    -webkit-transform: scale(0.5,0.5); /* Safari */
    transform: scale(0.5,0.5);
}
试一试»

skewX()方法

所述skewX()方法偏斜沿由预定角度的X轴的元件。

下面的例子将歪斜<div>元素沿X轴20度:

div {
    -ms-transform: skewX(20deg); /* IE 9 */
    -webkit-transform: skewX(20deg); /* Safari */
    transform: skewX(20deg);
}
试一试»

skewY()方法

所述skewY()方法偏斜沿着由给定的角度沿Y轴的元件。

下面的例子将歪斜<div>元素沿Y轴20度:

div {
    -ms-transform: skewY(20deg); /* IE 9 */
    -webkit-transform: skewY(20deg); /* Safari */
    transform: skewY(20deg);
}
试一试»

skew()方法

skew()方法偏斜沿X和Y轴由给定的角度的元件。

下面的例子偏斜的<div>元件沿X轴20度,并且沿着Y轴10度:

div {
    -ms-transform: skew(20deg, 10deg); /* IE 9 */
    -webkit-transform: skew(20deg, 10deg); /* Safari */
    transform: skew(20deg, 10deg);
}
试一试»

如果未指定所述第二参数,它有一个零值。 所以,下面的例子将歪斜<div>元素沿X轴20度:

div {
    -ms-transform: skew(20deg); /* IE 9 */
    -webkit-transform: skew(20deg); /* Safari */
    transform: skew(20deg);
}
试一试»

matrix()方法

旋转

matrix()方法结合了所有的2D转换方法为一体。

matrix()方法取六个参数,包括数学函数,它允许你旋转,缩放,移动(翻译),和倾斜的元素。

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

div {
    -ms-transform: matrix(1, -0.3, 0, 1, 0, 0); /* IE 9 */
    -webkit-transform: matrix(1, -0.3, 0, 1, 0, 0); /* Safari */
    transform: matrix(1, -0.3, 0, 1, 0, 0);
}
试一试»

自测练习用!

练习1» 练习2» 练习3» 练习4»


CSS3转换属性

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

属性 描述
transform 适用的2D或3D变换到一个元素
transform-origin 允许你改变转化元素位置

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) 限定了二维旋转,该角度在参数指定
skew(x-angle,y-angle) 限定沿X和Y轴的2D歪斜变换
skewX(angle) 限定沿X轴的二维倾斜转换
skewY(angle) 限定沿Y轴的2D歪斜变换