这里使用了transform模块可以对元素进行移动、缩放、转动、拉长或拉伸。
提供了以下方法:
- translate()
- rotate()
- scale()
- skew()
- matrix()
translate()方法,根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css2D-translate</title> <style type="text/css"> * { margin: 0; padding: 0; } div { width: 100px; height: 75px; border: 1px solid black; background-color: red; } </style> </head> <body> <div>参照的div</div> <div>此div在原来的位置移动了x轴和y轴</div> </body> </html>
效果如下:
使用translate进行移动之后:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css2D-translate</title> <style type="text/css"> * { margin: 0; padding: 0; } div { width: 100px; height: 75px; border: 1px solid black; background-color: red; } div#example { transform: translate(50px, 100px); /*x轴50px y轴100px*/ -ms-transform: translate(50px, 100px); /* IE9 */ -webkit-transform: translate(50px, 100px);/* Safari and Chrome */ } </style> </head> <body> <div>参照的div</div> <div id="example">此div在原来的位置移动了x轴和y轴</div> </body> </html>
效果如下:
translate值(50px,100px)是从左边元素移动50个像素,并从顶部移动100像素。
rotate()方法,在一个给定度数顺时针旋转的元素。负值是允许的,这样是元素逆时针旋转。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css2D-rotate</title> <style type="text/css"> * { margin: 0; padding: 0; } div { width: 100px; height: 75px; border: 1px solid black; background-color: red; } div#example { transform: rotate(180deg); -ms-transform:rotate(180deg); /* IE 9 */ -webkit-transform:rotate(180deg); /* Safari and Chrome */ } </style> </head> <body> <div>参照的div</div> <div id="example">旋转180deg的div</div> </body> </html>
效果如下:
rotate值(180deg)元素顺时针旋转180度。
scale()方法,该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>css2D-rotate</title> <style type="text/css"> * { margin: 0; padding: 0; } div { width: 200px; height: 100px; margin: 150px; border: 1px solid black; background-color: red; -ms-transform: scale(2,3); -webkit-transform: scale(2,3); transform: scale(2,3); } </style> </head> <body> <div>div元素的宽度是原始大小的两倍,高度是原始大小的三倍</div> </body> </html>
效果如下:
scale(2,3)转变宽度为原来的大小的2倍,和其原始大小3倍的高度。
skew() 方法
transform:skew(<angle> [,<angle>]);
包含两个参数值,分别表示X轴和Y轴倾斜的角度,如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜。
- skewX(<angle>);表示只在X轴(水平方向)倾斜。
- skewY(<angle>);表示只在Y轴(垂直方向)倾斜。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>css3 skew倾斜</title> <style type="text/css"> * { margin: 0; padding: 0; } div { width: 100px; height: 75px; border: 1px solid black; background-color: red; } div#div2 { transform: skew(30deg, 20deg); -ms-transform: skew(30deg, 20deg); /* IE9 */ -webkit-transform: skew(30deg, 20deg);/* Safari and Chrome */ } </style> </head> <body> <div> Hello This is a Div element </div> <div id="div2"> Hello This is a Div element </div> </body> </html>
效果如下:
skew(30deg,20deg) 元素在X轴和Y轴上倾斜20度30度。
matrix
矩阵可以用来表示图形的变换。css3定义了matrix
和matrix3d
方法,用来表示2维和3维的变换
平移和缩放我们只需要更改x和y就可以
如平移x轴:20 y轴30那么用矩阵写就是这样
transform: matrix(1,0,0,1,20,30);