|
|
在CSS3中,可以利用transform功能实现文字或图像的旋转、缩放、倾斜、移动这4中类型的变形处理。+ G! y, P+ t8 V# ^# ?
1、浏览器支持( j; `, e/ G0 n. e. Z# w3 [
. u9 C# K% n' w. Z/ J3 s% {' s3 G到目前为止:Safari3.1以上、Chrome8以上、Firefox4以上、Opera10以上浏览器支持该属性。 3 K& ` ]- \* q$ g8 Q; C+ D
2、旋转% ]' f) Z; f8 m, S( B
( H# [ Z2 k3 B0 ]使用rotate方法,在参数中加入角度值,角度值后面跟表示角度单位的“deg”文字即可,旋转方向为顺时针方向。3、缩放1 y6 ?) x; X" x* m
/ ?* t2 M: @; q$ u/ j/ l# z使用scale方法来实现文字或图像的缩放处理,在参数中指定缩放倍率。- transform:scale(0.5);//缩小一半
复制代码 (1)可以分别指定元素的水平方向的放大倍率与垂直方向的放大倍率- transform:scale(0.5,2);//水平方向缩小一半,垂直方向放大一倍。
复制代码 4、倾斜
" R0 v5 O/ S( G
- I8 D7 Z1 X/ n8 {) j4 F使用skew方法实现文字或图像的倾斜处理,在参数中分别指定水平方向上的倾斜角度与垂直方向上的倾斜角度。- transform:skew(30deg,30deg);//水平方向上倾斜30度,垂直方向上倾斜30度。
复制代码 (1)只使用一个参数,省略另一个参数
3 k+ e8 F: r. h% ^! _. Q( ?6 x这种情况下视为只在水平方向上进行倾斜,垂直方向上不倾斜。5、移动
) Q z4 f) T y
2 z( S: v/ k5 T使用translate方法来移动文字或图像,在参数中分别指定水平方向上的移动距离与垂直方向上的移动距离。- transform:translate(50px,50px);//水平方向上移动50px,垂直方向上移动50px
复制代码 (1)只使用一个参数,省略另一个参数% u$ f& a7 V/ S* X
这种情况下视为只在水平方向上移动,垂直方向上不移动。- transform:translate(50px);
复制代码 6、对一个元素使用多种变形的方法 - transform:translate(150px,200px)rotate(45deg)scale(1.5);
复制代码 7、指定变形的基准点7 n( L* J! Y! q$ _8 G
K' o) F5 h% v+ G7 q( ]+ ?( A
在使用transform方法进行文字或图像变形的时候,是以元素的中心点为基准点进行变形的。
+ N6 f5 V# x6 w1 |( wtransform-origin属性/ `* x8 K& v; ?5 j D9 ?
使用该属性,可以改变变形的基准点。- transform:rotate(45deg);transform-origin:leftbottom;//把基准点修改为元素的左下角
复制代码 (1)指定属性值5 l9 r |/ J" f5 \7 R7 `% H* K, B
基准点在元素水平方向上的位置:left、center、right/ T; u$ U" M0 ^! U( I
基准点在元素垂直方向上的位置:top、center、bottom9 ^1 k; _) i9 G2 `+ r
8、3D变形功能
3 F+ w) h9 a9 k3 x8 q9 J
% x' ^$ }& n, l8 V3 D(1)旋转
+ s1 N0 b: t S6 o* i- Q: l! D分别使用rotateX方法、rotateY方法、rotateZ方法使元素围绕X轴、Y轴、Z轴旋转,在参数中加入角度值,角度值后面跟表示角度单位的deg文字即可,旋转方向为顺时针旋转。- transform:rotateX(45deg);transform:rotateY(45deg);transform:rotateZ(45deg);transform:rotateX(45deg)rotateY(45deg)rotateZ(45deg);transform:scale(0.5)rotateY(45deg)rotateZ(45deg);
复制代码 (2)缩放
9 u1 \' m: i$ U9 F3 e# Y# [$ z分别使用scaleX方法、scaleY方法、scaleZ方法使元素按X轴、Y轴、Z轴进行缩放,在参数中指定缩放倍率。- transform:scaleX(0.5);transform:scaleY(1);transform:scaleZ(2);transform:scaleX(0.5)scaleY(1);transform:scale(0.5)rotateY(45deg);
复制代码 (3)倾斜% O! ? _: }7 i ?/ p$ Y1 S/ L, Y5 r; M
分别使用skewX方法、skewY方法使元素在X轴、Y轴上进行顺时针方向倾斜(无skewZ方法),在参数中指定倾斜的角度- transform:skewX(45deg);transform:skewY(45deg);
复制代码 (4)移动
! r" u o: b1 U L5 _* t3 u分别使用translateX方法、translateY方法、translateZ方法、使元素在X轴、Y轴、Z轴方向上进行移动,在参数中加入移动距离。- transform:translateX(50px);transform:translateY(50px);transform:translateZ(50px);
复制代码 9、变形矩阵
6 L. o2 t0 P4 X8 O$ D
4 K5 Y' K3 U0 D8 Q" E9 ?0 ~每种变形方法的背后都存在着一个对应的矩阵。
# n3 Z) @6 | x. u F8 \0 F(1)计算2D变形(3X3矩阵)- \begin{bmatrix}a&c&e\\b&d&f\\0&0&1\end{bmatrix}
复制代码 可以将这个2D变形矩阵书写为matrim(a,b,c,d,e,f),a~f均代表一个数字,用于决定怎样执行变形处理。
; ?% |8 m) _9 m) U8 r(2)平移的2D矩阵- \begin{bmatrix}1&0&tx\\0&1&ty\\0&0&1\end{bmatrix}//效果一致:右移150px,下移150pxtransform:matrix(1,0,0,1,150,150);transform:translate(150px,150px);
复制代码 (3)计算3D变形
5 P4 f1 x" {$ I3 ^: U3D缩放变形使用的4X4矩阵- \begin{bmatrix}sx&0&0&0\\0&sy&0&0\\0&0&sz&0\\0&0&0&1\end{bmatrix}transform:matrix3d(sx,0,0,0,0,sy,0,0,0,0,sz,0,0,0,0,1);//效果一致:X轴方向上缩小五分之一,Y轴方向上缩小一半。transform:scale3d(0.8,0.5,1);transform:matrix3d(0.8,0,0,0,0,0.5,0,0,0,0,1,0,0,0,0,1);
复制代码 (4)可通过矩阵执行多重变形处理
0 y* _& g. r/ X* z/ ~4 v将需要的变形矩阵相乘得到一个新的变形矩阵可实现该处理。+ f# J3 r& m6 {$ o& m7 c( E3 B
到此这篇关于css3中transform属性实现的4种功能的文章就介绍到这了,更多相关css3中transform属性实现内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
: S- q# E5 Q, e, w7 z3 T( h2 Y- `1 y7 k6 C* @ N
来源:http://www.jb51.net/css/784776.html5 j% S/ K B5 ?) @0 |) K6 m
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|