html5中文学习网

您的位置: 首页 > 视频教程 > CSS3视频教程 » 正文

CSS3中的transform变形_HTML5中文网 - 中国领先的HTML5技术门户

[ ] 已经帮助:人解决问题

 在CSS3中,用Transform功能可以实现文字或图像的旋转、缩放、倾斜、移动这四种类型的变形,这四种变形分别使用rotate、scale、skew和translate这四种方法来实现。将这四种变形结合使用,就会产生不同的效果,使用顺序不同,产生的效果是不一样的。m6LHTML5中文学习网 - HTML5先行者学习网

  目前浏览器支持情况:Safari 3.1+、 Chrome 8+、Firefox 4+、Opera 10+、IE9+m6LHTML5中文学习网 - HTML5先行者学习网

  一、旋转:m6LHTML5中文学习网 - HTML5先行者学习网

  CSS中使用rotate方法来实现对元素的旋转,在参数中加入角度值,旋转方式为顺时针旋转。m6LHTML5中文学习网 - HTML5先行者学习网

  例一:一个黄色的div元素,通过在样式代码中使用“transform: rotate(45deg)”,语句使这个div元素顺时针旋转45度。deg是CSS3的“Values and Units”模块中定义的一个角度单位。m6LHTML5中文学习网 - HTML5先行者学习网

  代码清单1:m6LHTML5中文学习网 - HTML5先行者学习网

 1 <!DOCTYPE html>m6LHTML5中文学习网 - HTML5先行者学习网
2 <html>m6LHTML5中文学习网 - HTML5先行者学习网
3 <head>m6LHTML5中文学习网 - HTML5先行者学习网
4 <meta charset="utf-8" />m6LHTML5中文学习网 - HTML5先行者学习网
5 <title>Transform旋转</title>m6LHTML5中文学习网 - HTML5先行者学习网
6 <style>m6LHTML5中文学习网 - HTML5先行者学习网
7 div {m6LHTML5中文学习网 - HTML5先行者学习网
8 width: 300px;m6LHTML5中文学习网 - HTML5先行者学习网
9 margin: 150px auto;m6LHTML5中文学习网 - HTML5先行者学习网
10 background-color: yellow;m6LHTML5中文学习网 - HTML5先行者学习网
11 text-align: center;m6LHTML5中文学习网 - HTML5先行者学习网
12 -webkit-transform: rotate(45deg); /* for Chrome || Safari */m6LHTML5中文学习网 - HTML5先行者学习网
13 -moz-transform: rotate(45deg); /* for Firefox */m6LHTML5中文学习网 - HTML5先行者学习网
14 -ms-transform: rotate(45deg); /* for IE */m6LHTML5中文学习网 - HTML5先行者学习网
15 -o-transform: rotate(45deg); /* for Opera */m6LHTML5中文学习网 - HTML5先行者学习网
16 }m6LHTML5中文学习网 - HTML5先行者学习网
17 </style>m6LHTML5中文学习网 - HTML5先行者学习网
18 </head>m6LHTML5中文学习网 - HTML5先行者学习网
19 <body>m6LHTML5中文学习网 - HTML5先行者学习网
20 <div>黄色div</div>m6LHTML5中文学习网 - HTML5先行者学习网
21 </body>m6LHTML5中文学习网 - HTML5先行者学习网
22 </html>

运行结果(Chrome 14):m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

  二、缩放:m6LHTML5中文学习网 - HTML5先行者学习网

  scale方法实现文字或图像的缩放效果,参数中指定缩放倍率,例如:“scale(0.5)”表示缩小50%,参数可以是整数,也可以是小数。m6LHTML5中文学习网 - HTML5先行者学习网

  例二:将一个div元素缩小50%m6LHTML5中文学习网 - HTML5先行者学习网

  代码清单2:m6LHTML5中文学习网 - HTML5先行者学习网

<!DOCTYPE html>m6LHTML5中文学习网 - HTML5先行者学习网
<html>m6LHTML5中文学习网 - HTML5先行者学习网
<head>m6LHTML5中文学习网 - HTML5先行者学习网
<meta charset="utf-8" />m6LHTML5中文学习网 - HTML5先行者学习网
<title>Transform缩放</title>m6LHTML5中文学习网 - HTML5先行者学习网
<style>m6LHTML5中文学习网 - HTML5先行者学习网
div {m6LHTML5中文学习网 - HTML5先行者学习网
width: 300px;m6LHTML5中文学习网 - HTML5先行者学习网
margin: 150px auto;m6LHTML5中文学习网 - HTML5先行者学习网
background-color: yellow;m6LHTML5中文学习网 - HTML5先行者学习网
text-align: center;m6LHTML5中文学习网 - HTML5先行者学习网
-webkit-transform: scale(0.5); /* for Chrome || Safari */m6LHTML5中文学习网 - HTML5先行者学习网
-moz-transform: scale(0.5); /* for Firefox */m6LHTML5中文学习网 - HTML5先行者学习网
-ms-transform: scale(0.5); /* for IE */m6LHTML5中文学习网 - HTML5先行者学习网
-o-transform: scale(0.5); /* for Opera */m6LHTML5中文学习网 - HTML5先行者学习网
}m6LHTML5中文学习网 - HTML5先行者学习网
</style>m6LHTML5中文学习网 - HTML5先行者学习网
</head>m6LHTML5中文学习网 - HTML5先行者学习网
<body>m6LHTML5中文学习网 - HTML5先行者学习网
<div>黄色div</div>m6LHTML5中文学习网 - HTML5先行者学习网
</body>m6LHTML5中文学习网 - HTML5先行者学习网
</html>

运行结果(Chrome 14):m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

  三、倾斜:m6LHTML5中文学习网 - HTML5先行者学习网

  使用skew方法来实现文字或图像的倾斜效果,在参数中分别指定水平方向上的倾斜角度与垂直方向上的倾斜角度。例如“skew(30deg, 30deg)”表示水平方向上倾斜30度,垂直方向上也倾斜30度,m6LHTML5中文学习网 - HTML5先行者学习网

  例三:将一个div元素在水平方向上倾斜30度,垂直方向上倾斜30度。m6LHTML5中文学习网 - HTML5先行者学习网

  代码清单3:m6LHTML5中文学习网 - HTML5先行者学习网

<!DOCTYPE html>m6LHTML5中文学习网 - HTML5先行者学习网
<html>m6LHTML5中文学习网 - HTML5先行者学习网
<head>m6LHTML5中文学习网 - HTML5先行者学习网
<meta charset="utf-8" />m6LHTML5中文学习网 - HTML5先行者学习网
<title>Transform倾斜</title>m6LHTML5中文学习网 - HTML5先行者学习网
<style>m6LHTML5中文学习网 - HTML5先行者学习网
div {m6LHTML5中文学习网 - HTML5先行者学习网
width: 300px;m6LHTML5中文学习网 - HTML5先行者学习网
margin: 150px auto;m6LHTML5中文学习网 - HTML5先行者学习网
background-color: yellow;m6LHTML5中文学习网 - HTML5先行者学习网
text-align: center;m6LHTML5中文学习网 - HTML5先行者学习网
-webkit-transform: skew(30deg, 30deg); /* for Chrome || Safari */m6LHTML5中文学习网 - HTML5先行者学习网
-moz-transform: skew(30deg, 30deg); /* for Firefox */m6LHTML5中文学习网 - HTML5先行者学习网
-ms-transform: skew(30deg, 30deg); /* for IE */m6LHTML5中文学习网 - HTML5先行者学习网
-o-transform: skew(30deg, 30deg); /* for Opera */m6LHTML5中文学习网 - HTML5先行者学习网
}m6LHTML5中文学习网 - HTML5先行者学习网
</style>m6LHTML5中文学习网 - HTML5先行者学习网
</head>m6LHTML5中文学习网 - HTML5先行者学习网
<body>m6LHTML5中文学习网 - HTML5先行者学习网
<div>黄色div</div>m6LHTML5中文学习网 - HTML5先行者学习网
</body>m6LHTML5中文学习网 - HTML5先行者学习网
</html>

运行结果(Chrome 14):m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

注意:skew方法中的两个参数可以修改成只使用一个参数,省略另一个参数,这可不是说水平方向和垂直方向一样,这种情况视为只在水平方向倾斜,垂直方向上不倾斜。m6LHTML5中文学习网 - HTML5先行者学习网

看一下运行结果:m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

  四、移动:m6LHTML5中文学习网 - HTML5先行者学习网

  使用translate方法来实现将文字或图像进行移动,在参数中分别指定水平方向上的移动距离与垂直方向上的移动距离。例如“translate(50px, 50px)”表示水平方向上移动50个像素,垂直方向上移动50个像素。m6LHTML5中文学习网 - HTML5先行者学习网

  例四:将一个div元素水平方向上移动50个像素,垂直方向上移动50个像素。m6LHTML5中文学习网 - HTML5先行者学习网

  代码清单4:m6LHTML5中文学习网 - HTML5先行者学习网

<!DOCTYPE html>m6LHTML5中文学习网 - HTML5先行者学习网
<html>m6LHTML5中文学习网 - HTML5先行者学习网
<head>m6LHTML5中文学习网 - HTML5先行者学习网
<meta charset="utf-8" />m6LHTML5中文学习网 - HTML5先行者学习网
<title>Transform移动</title>m6LHTML5中文学习网 - HTML5先行者学习网
<style>m6LHTML5中文学习网 - HTML5先行者学习网
div {m6LHTML5中文学习网 - HTML5先行者学习网
width: 300px;m6LHTML5中文学习网 - HTML5先行者学习网
margin: 150px auto;m6LHTML5中文学习网 - HTML5先行者学习网
background-color: yellow;m6LHTML5中文学习网 - HTML5先行者学习网
text-align: center;m6LHTML5中文学习网 - HTML5先行者学习网
-webkit-transform: translate(50px, 50px); /* for Chrome || Safari */m6LHTML5中文学习网 - HTML5先行者学习网
-moz-transform: translate(50px, 50px); /* for Firefox */m6LHTML5中文学习网 - HTML5先行者学习网
-ms-transform: translate(50px, 50px); /* for IE */m6LHTML5中文学习网 - HTML5先行者学习网
-o-transform: translate(50px, 50px); /* for Opera */m6LHTML5中文学习网 - HTML5先行者学习网
}m6LHTML5中文学习网 - HTML5先行者学习网
</style>m6LHTML5中文学习网 - HTML5先行者学习网
</head>m6LHTML5中文学习网 - HTML5先行者学习网
<body>m6LHTML5中文学习网 - HTML5先行者学习网
<div>黄色div</div>m6LHTML5中文学习网 - HTML5先行者学习网
</body>m6LHTML5中文学习网 - HTML5先行者学习网
</html>

运行结果(Firefox 7):m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

注意:translate方法中的两个参数也可以修改成只使用一个参数,跟skew方法类似,省略另一个参数,这种情况视为只在水平方向移动,垂直方向上不移动。m6LHTML5中文学习网 - HTML5先行者学习网

运行结果(Firefox 7):m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

  对一个元素使用多种变形的方法:m6LHTML5中文学习网 - HTML5先行者学习网

  例五:对一个div元素,先移动(向右移动150px,向下移动200px),然后旋转(顺时针旋转45度),最后缩放(放大1.5倍)。m6LHTML5中文学习网 - HTML5先行者学习网

  代码清单5:m6LHTML5中文学习网 - HTML5先行者学习网

<!DOCTYPE html>m6LHTML5中文学习网 - HTML5先行者学习网
<html>m6LHTML5中文学习网 - HTML5先行者学习网
<head>m6LHTML5中文学习网 - HTML5先行者学习网
<meta charset="utf-8" />m6LHTML5中文学习网 - HTML5先行者学习网
<title>Transform多重变形(先移动,然后旋转,最后缩放)</title>m6LHTML5中文学习网 - HTML5先行者学习网
<style>m6LHTML5中文学习网 - HTML5先行者学习网
div {m6LHTML5中文学习网 - HTML5先行者学习网
width: 300px;m6LHTML5中文学习网 - HTML5先行者学习网
margin: 150px auto;m6LHTML5中文学习网 - HTML5先行者学习网
background-color: yellow;m6LHTML5中文学习网 - HTML5先行者学习网
text-align: center;m6LHTML5中文学习网 - HTML5先行者学习网
-webkit-transform: translate(150px, 200px) rotate(45deg) scale(1.5); /* for Chrome || Safari */m6LHTML5中文学习网 - HTML5先行者学习网
-moz-transform: translate(150px, 200px) rotate(45deg) scale(1.5); /* for Firefox */m6LHTML5中文学习网 - HTML5先行者学习网
-ms-transform: translate(150px, 200px) rotate(45deg) scale(1.5); /* for IE */m6LHTML5中文学习网 - HTML5先行者学习网
-o-transform: translate(150px, 200px) rotate(45deg) scale(1.5); /* for Opera */m6LHTML5中文学习网 - HTML5先行者学习网
}m6LHTML5中文学习网 - HTML5先行者学习网
</style>m6LHTML5中文学习网 - HTML5先行者学习网
</head>m6LHTML5中文学习网 - HTML5先行者学习网
<body>m6LHTML5中文学习网 - HTML5先行者学习网
<div>黄色div</div>m6LHTML5中文学习网 - HTML5先行者学习网
</body>m6LHTML5中文学习网 - HTML5先行者学习网
</html>

运行结果(Chrome 14):m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

  下面把上面代码中几个变形方法的顺序调整一下,先旋转(顺时针旋转45度),然后缩放(放大1.5倍),移动(向右移动150px,向下移动200px), 看看结果怎样:m6LHTML5中文学习网 - HTML5先行者学习网

  代码清单6:m6LHTML5中文学习网 - HTML5先行者学习网

<!DOCTYPE html>m6LHTML5中文学习网 - HTML5先行者学习网
<html>m6LHTML5中文学习网 - HTML5先行者学习网
<head>m6LHTML5中文学习网 - HTML5先行者学习网
<meta charset="utf-8" />m6LHTML5中文学习网 - HTML5先行者学习网
<title>Transform多重变形(先旋转,然后缩放,最后移动)</title>m6LHTML5中文学习网 - HTML5先行者学习网
<style>m6LHTML5中文学习网 - HTML5先行者学习网
div {m6LHTML5中文学习网 - HTML5先行者学习网
width: 300px;m6LHTML5中文学习网 - HTML5先行者学习网
margin: 150px auto;m6LHTML5中文学习网 - HTML5先行者学习网
background-color: yellow;m6LHTML5中文学习网 - HTML5先行者学习网
text-align: center;m6LHTML5中文学习网 - HTML5先行者学习网
-webkit-transform: rotate(45deg) scale(1.5) translate(150px, 200px); /* for Chrome || Safari */m6LHTML5中文学习网 - HTML5先行者学习网
-moz-transform: rotate(45deg) scale(1.5) translate(150px, 200px); /* for Firefox */m6LHTML5中文学习网 - HTML5先行者学习网
-ms-transform: rotate(45deg) scale(1.5) translate(150px, 200px); /* for IE */m6LHTML5中文学习网 - HTML5先行者学习网
-o-transform: rotate(45deg) scale(1.5) translate(150px, 200px); /* for Opera */m6LHTML5中文学习网 - HTML5先行者学习网
}m6LHTML5中文学习网 - HTML5先行者学习网
</style>m6LHTML5中文学习网 - HTML5先行者学习网
</head>m6LHTML5中文学习网 - HTML5先行者学习网
<body>m6LHTML5中文学习网 - HTML5先行者学习网
<div>黄色div</div>m6LHTML5中文学习网 - HTML5先行者学习网
</body>m6LHTML5中文学习网 - HTML5先行者学习网
</html>

运行结果(Chrome 14):m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

  通过上面两个示例可以看出,元素在两个页面上所处位置并不相同,为什么会这样呢?m6LHTML5中文学习网 - HTML5先行者学习网

先看第一个例子:首先向右移动150px,向下移动200px,元素的中心点在水平方向先移动150px,再在垂直方向向下移动200px,然后在旋转45度,放大1.5倍。m6LHTML5中文学习网 - HTML5先行者学习网

第二个例子:首先旋转45度,并且放大了1.5倍,这时候元素是倾斜了45度角的,在移动的话,元素就是按45度角的方向向右移动150px,向下移动200px是沿着与水平方向呈225度方向移动的。看下下面的示意图就很明显了:m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

怎么样,很容易看明白吧。m6LHTML5中文学习网 - HTML5先行者学习网

  指定变形的基准点:m6LHTML5中文学习网 - HTML5先行者学习网

  使用transform方法进行文字或图像变形的时候,是以元素的中心点为基准点进行的。使用transform-origin属性,可以改变变形的基准点。m6LHTML5中文学习网 - HTML5先行者学习网

  例六:两个div元素,首先不改变变形的基准点,将第二个div元素进行旋转。m6LHTML5中文学习网 - HTML5先行者学习网

  代码清单7:m6LHTML5中文学习网 - HTML5先行者学习网

 1 <!DOCTYPE html>m6LHTML5中文学习网 - HTML5先行者学习网
2 <html>m6LHTML5中文学习网 - HTML5先行者学习网
3 <head>m6LHTML5中文学习网 - HTML5先行者学习网
4 <meta charset="utf-8" />m6LHTML5中文学习网 - HTML5先行者学习网
5 <title>Transform指定基准点变形</title>m6LHTML5中文学习网 - HTML5先行者学习网
6 <style>m6LHTML5中文学习网 - HTML5先行者学习网
7 div {m6LHTML5中文学习网 - HTML5先行者学习网
8 width: 200px;m6LHTML5中文学习网 - HTML5先行者学习网
9 height: 200px;m6LHTML5中文学习网 - HTML5先行者学习网
10 display: inline-block;m6LHTML5中文学习网 - HTML5先行者学习网
11 line-height: 200px;m6LHTML5中文学习网 - HTML5先行者学习网
12 text-align: center;m6LHTML5中文学习网 - HTML5先行者学习网
13 }m6LHTML5中文学习网 - HTML5先行者学习网
14 div.a {m6LHTML5中文学习网 - HTML5先行者学习网
15 background-color: yellow;m6LHTML5中文学习网 - HTML5先行者学习网
16 }m6LHTML5中文学习网 - HTML5先行者学习网
17 div.b {m6LHTML5中文学习网 - HTML5先行者学习网
18 background-color: green;m6LHTML5中文学习网 - HTML5先行者学习网
19 -webkit-transform: rotate(45deg); /* for Chrome || Safari */m6LHTML5中文学习网 - HTML5先行者学习网
20 -moz-transform: rotate(45deg); /* for Firefox */m6LHTML5中文学习网 - HTML5先行者学习网
21 -ms-transform: rotate(45deg);       /* for IE */m6LHTML5中文学习网 - HTML5先行者学习网
22 -o-transform: rotate(45deg); /* for Opera */m6LHTML5中文学习网 - HTML5先行者学习网
23 }m6LHTML5中文学习网 - HTML5先行者学习网
24 </style>m6LHTML5中文学习网 - HTML5先行者学习网
25 </head>m6LHTML5中文学习网 - HTML5先行者学习网
26 <body>m6LHTML5中文学习网 - HTML5先行者学习网
27 <div class="a">黄色div</div>m6LHTML5中文学习网 - HTML5先行者学习网
28 <div class="b">绿色div</div>m6LHTML5中文学习网 - HTML5先行者学习网
29 </body>m6LHTML5中文学习网 - HTML5先行者学习网
30 </html>

运行结果(Chrome 14):m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

下面使用transform-origin属性把变形的基准点修改为第二个元素的左下角,代码如下:m6LHTML5中文学习网 - HTML5先行者学习网

代码清单8:m6LHTML5中文学习网 - HTML5先行者学习网

 1 <!DOCTYPE html>m6LHTML5中文学习网 - HTML5先行者学习网
2 <html>m6LHTML5中文学习网 - HTML5先行者学习网
3 <head>m6LHTML5中文学习网 - HTML5先行者学习网
4 <meta charset="utf-8" />m6LHTML5中文学习网 - HTML5先行者学习网
5 <title>Transform指定基准点变形</title>m6LHTML5中文学习网 - HTML5先行者学习网
6 <style>m6LHTML5中文学习网 - HTML5先行者学习网
7 div {m6LHTML5中文学习网 - HTML5先行者学习网
8 width: 200px;m6LHTML5中文学习网 - HTML5先行者学习网
9 height: 200px;m6LHTML5中文学习网 - HTML5先行者学习网
10 display: inline-block;m6LHTML5中文学习网 - HTML5先行者学习网
11 line-height: 200px;m6LHTML5中文学习网 - HTML5先行者学习网
12 text-align: center;m6LHTML5中文学习网 - HTML5先行者学习网
13 }m6LHTML5中文学习网 - HTML5先行者学习网
14 div.a {m6LHTML5中文学习网 - HTML5先行者学习网
15 background-color: yellow;m6LHTML5中文学习网 - HTML5先行者学习网
16 }m6LHTML5中文学习网 - HTML5先行者学习网
17 div.b {m6LHTML5中文学习网 - HTML5先行者学习网
18 background-color: green;m6LHTML5中文学习网 - HTML5先行者学习网
19 -webkit-transform: rotate(45deg); /* for Chrome || Safari */m6LHTML5中文学习网 - HTML5先行者学习网
20 -moz-transform: rotate(45deg); /* for Firefox */m6LHTML5中文学习网 - HTML5先行者学习网
21 -ms-transform: rotate(45deg); /* for IE */m6LHTML5中文学习网 - HTML5先行者学习网
22 -o-transform: rotate(45deg); /* for Opera */m6LHTML5中文学习网 - HTML5先行者学习网
23 /* 修改变形基准点 */m6LHTML5中文学习网 - HTML5先行者学习网
24 -webkit-transform-origin: left bottom; /* for Chrome || Safari */m6LHTML5中文学习网 - HTML5先行者学习网
25 -moz-transform-origin: left bottom; /* for Firefox */m6LHTML5中文学习网 - HTML5先行者学习网
26 -ms-transform-origin: left bottom; /* for IE */m6LHTML5中文学习网 - HTML5先行者学习网
27 -o-transform-origin: left bottom; /* for Opera */m6LHTML5中文学习网 - HTML5先行者学习网
28 }m6LHTML5中文学习网 - HTML5先行者学习网
29 </style>m6LHTML5中文学习网 - HTML5先行者学习网
30 </head>m6LHTML5中文学习网 - HTML5先行者学习网
31 <body>m6LHTML5中文学习网 - HTML5先行者学习网
32 <div class="a">黄色div</div>m6LHTML5中文学习网 - HTML5先行者学习网
33 <div class="b">绿色div</div>m6LHTML5中文学习网 - HTML5先行者学习网
34 </body>m6LHTML5中文学习网 - HTML5先行者学习网
35 </html>

运行结果(Chrome 14):m6LHTML5中文学习网 - HTML5先行者学习网

m6LHTML5中文学习网 - HTML5先行者学习网

  指定transform-origin属性值的时候,采用“基准点在元素水平方向上的位置,基准点在元素垂直方向上的位置”的方法,其中“基准点在元素水平方向上的位置”中可以指定的值为left、center、right,“基准点在垂直方向上的位置”中可以指定的值为top、center、bottom。m6LHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助