您好,登錄后才能下訂單哦!
轉(zhuǎn)換 transform
能夠?qū)υ剡M行移動、縮放、轉(zhuǎn)動、拉長或拉伸
在CSS中,允許元素實現(xiàn) 2D 和 3D的轉(zhuǎn)換效果,主要包含 :旋轉(zhuǎn),縮放,移動,傾斜
2D :元素只能在X軸和Y軸平面上發(fā)生變化
3D :元素還可以在 Z軸上發(fā)生變化
取值:
none:無轉(zhuǎn)換
2D Transform Functions:
matrix():
以一個含六值的(a,b,c,d,e,f)變換矩陣的形式指定一個2D變換,相當于直接應(yīng)用一個[a,b,c,d,e,f]變換矩陣
translate():
指定對象的2D translation(2D平移)。第一個參數(shù)對應(yīng)X軸,第二個參數(shù)對應(yīng)Y軸。如果第二個參數(shù)未提供,則默認值為0
translatex():
指定對象X軸(水平方向)的平移
translatey():
指定對象Y軸(垂直方向)的平移
rotate():
指定對象的2D rotation(2D旋轉(zhuǎn)),需先有 <' transform-origin '> 屬性的定義
scale():
指定對象的2D scale(2D縮放)。第一個參數(shù)對應(yīng)X軸,第二個參數(shù)對應(yīng)Y軸。如果第二個參數(shù)未提供,則默認取第一個參數(shù)的值
scalex():
指定對象X軸的(水平方向)縮放
scaley():
指定對象Y軸的(垂直方向)縮放
skew():
指定對象skew transformation(斜切扭曲)。第一個參數(shù)對應(yīng)X軸,第二個參數(shù)對應(yīng)Y軸。如果第二個參數(shù)未提供,則默認值為0
skewx():
指定對象X軸的(水平方向)扭曲
skewy():
指定對象Y軸的(垂直方向)扭曲
3D Transform Functions:
matrix3d():
以一個4x4矩陣的形式指定一個3D變換
translate3d():
指定對象的3D位移。第1個參數(shù)對應(yīng)X軸,第2個參數(shù)對應(yīng)Y軸,第3個參數(shù)對應(yīng)Z軸,參數(shù)不允許省略
translatez():
指定對象Z軸的平移
rotate3d():
指定對象的3D旋轉(zhuǎn)角度,其中前3個參數(shù)分別表示旋轉(zhuǎn)的方向x,y,z,第4個參數(shù)表示旋轉(zhuǎn)的角度,參數(shù)不允許省略
rotatex():
指定對象在x軸上的旋轉(zhuǎn)角度
rotatey():
指定對象在y軸上的旋轉(zhuǎn)角度
rotatez():
指定對象在z軸上的旋轉(zhuǎn)角度
scale3d():
指定對象的3D縮放。第1個參數(shù)對應(yīng)X軸,第2個參數(shù)對應(yīng)Y軸,第3個參數(shù)對應(yīng)Z軸,參數(shù)不允許省略
scalez():
指定對象的z軸縮放
perspective():
指定透視距離
1、2D轉(zhuǎn)換
使元素在x軸 和 y軸上所進行的轉(zhuǎn)換效果可以稱之為2D轉(zhuǎn)換,包括:位移、縮放、旋轉(zhuǎn)、傾斜
1-1、位移 translate()
讓元素產(chǎn)生一個位置的移動變化效果
函數(shù):translate(一個值) -->只在x軸位移距離
translate(值1,值2) --> 在x軸和y軸的位移距離
取值:數(shù)值 | 百分比,可以取負值
x為正,則向右移動; x為負,則向左移動。
y為正,則向下移動; y為負,則向上移動。
代碼示例如下:
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>位移</title> <style> div{ width:100px; height:100px; /*絕對定位*/ position:absolute; top:0; left:0; } #d1{ border:1px dotted #333; } #d2{ border:1px solid #f00; background-color:#ddd; opacity:0.5; /*位移*/ -webkit-transform:translate(50px,50px); -moz-transform:translate(50px,50px); -ms-transform:translate(50px,50px); transform:translate(50px,50px); } </style> </head> <body> <div id="d1"></div> <div id="d2"></div> </body> </html>
1-2、縮放 scale()
改變元素的大小稱之為 縮放
函數(shù):scale(), scale(x), scale(x,y)
注意:如果只給一個值,那么,第二個默認與第一個值相等
取值:默認值為1
縮?。?到1之間的數(shù)值
放大:大于1的數(shù)值
代碼示例如下:
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>位移</title> <style> div{ width:200px; height:200px; /*絕對定位*/ position:absolute; top:300px; left:400px; } #d1{ border:1px dotted #333; } #d2{ border:1px solid #f00; background-color:#ddd; opacity:0.5; /*縮放*/ -webkit-transform:scaleX(1.5); -moz-transform:scaleX(1.5); -ms-transform:scaleX(1.5); transform:scaleX(1.5); } </style> </head> <body> <div id="d1">原始元素</div> <div id="d2">縮放元素</div> </body> </html>
1-3、旋轉(zhuǎn) rotate( )
使元素圍繞著一個點(轉(zhuǎn)換原點)實現(xiàn)角度的變化 稱之為 旋轉(zhuǎn)
函數(shù):rotate( ndeg )
注意:需先指定旋轉(zhuǎn)原點 <transform-origin>
取值:n取值為正,按順時針旋轉(zhuǎn); n取值為負,按逆時針旋轉(zhuǎn)
不指定旋轉(zhuǎn)原點,即按元素中心旋轉(zhuǎn):
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>位移</title> <style> div{ width:200px; height:200px; /*絕對定位*/ position:absolute; top:300px; left:400px; } #d1{ border:1px dotted #333; } #d2{ border:1px solid #f00; background-color:#ddd; opacity:0.5; /*位移*/ -webkit-transform:rotate(45deg); -moz-transform:rotate(45deg); -ms-transform:rotate(45deg); transform:rotate(45deg); } </style> </head> <body> <div id="d1">原始元素</div> <div id="d2">旋轉(zhuǎn)元素</div> </body> </html>
也可改變默認轉(zhuǎn)換原點:
<style> div{ width:200px; height:200px; /*絕對定位*/ position:absolute; top:300px; left:400px; } #d1{ border:1px dotted #333; } #d2{ border:1px solid #f00; background-color:#ddd; opacity:0.5; /*更改轉(zhuǎn)換原點*/ -webkit-transform-origin:0px 0px; -moz-transform-origin:0px 0px; -ms-transform-origin:0px 0px; /*位移*/ -webkit-transform:rotate(45deg); -moz-transform:rotate(45deg); -ms-transform:rotate(45deg); transform:rotate(45deg); } </style>
1-4、傾斜 skew( )
能夠改變元素的形狀,以原點位置,讓元素圍繞著 x軸 或 y軸 按照一定的角度傾斜
函數(shù): skew( x,y) , skew( x ) <==> skewX( ndeg ) , skewY( ndeg )
取值:角度
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>位移</title> <style> div{ width:200px; height:200px; /*絕對定位*/ position:absolute; top:300px; left:400px; } #d1{ border:1px dotted #333; } #d2{ border:1px solid #f00; background-color:#ddd; opacity:0.5; /*向x軸傾斜30deg*/ -webkit-transform:skew(30deg); -moz-transform:skew(30deg); -ms-transform:skew(30deg); transform:skew(30deg); } </style> </head> <body> <div id="d1">原始元素</div> <div id="d2">傾斜元素</div> </body> </html>
2、3D轉(zhuǎn)換
在 x軸 和 y軸的基礎(chǔ)上,增加對 z軸(空間軸)的轉(zhuǎn)換效果
2-1、perspective 屬性
3D元素的透視效果,假定 人眼 到投射平面的距離
注意:(1)、使用 perspective屬性,元素本身不會得到3D轉(zhuǎn)換效果,其子元素才有3D轉(zhuǎn)換效果
(2)、瀏覽器兼容性,需帶前綴 -webkit-perspective, -moz-perspective, 沒有-ms-
2-2、3D轉(zhuǎn)換--旋轉(zhuǎn)
函數(shù):rotateX( xdeg ) rotateY( ydeg ) rotateZ( zdeg )
rotate3d(x,y,z,deg) x,y,z 大于0,即表示該軸參與旋轉(zhuǎn)
rotate3d(1,1,1,45deg); --> rotateX(45deg) rotateY(45deg) rotateZ(45deg);
rotate3d(1,0,0,45deg); --> rotateX(45deg);
代碼示例如下:
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Document</title> <style> #parent{ width:200px; height:200px; border:1px solid #ddd; margin:100px auto; /*1、perspective:定義 人眼 到投射平面的距離*/ -webkit-perspective:1200px; -moz-perspective:1200px; perspective:1200px; } #son{ width:100px; height:100px; margin:50px auto; background-color:#e4393c; /*3D轉(zhuǎn)換-旋轉(zhuǎn)*/ -webkit-transform:rotate3d(1,1,1,45deg); -moz-transform:rotate3d(1,1,1,45deg); -ms-transform:rotate3d(1,1,1,45deg); transform:rotate3d(1,1,1,45deg); } </style> </head> <body> <!-- 父元素設(shè)置 perspective , 子元素實現(xiàn)3d轉(zhuǎn)換 --> <div id="parent"> <div id="son">3d轉(zhuǎn)換元素</div> </div> </body> </html>
2-3、3D轉(zhuǎn)換--位移
在2D基礎(chǔ)上,增加了對 z軸上的位移距離
函數(shù):
translateZ( zdeg )
取值為正:向著人眼方向移動,物體越大
取值為負:遠離人眼方向,物體越小
translate3d(x,y,z):左右,上下,前后
2-4、transform-style 屬性
作用:如何在3D空間中,呈現(xiàn)被嵌套的元素
規(guī)范了當前元素的子元素,呈現(xiàn)什么樣的位置顯示
取值:
flat:子元素將不保留其3D位置,呈D位置顯示
preserve-3d:子元素將保留其3D位置
轉(zhuǎn)換的原點 transform-origin
默認位置:原點是在元素的中心位置
取值:數(shù)值 | 百分比 | 關(guān)鍵字
兩個值:表示x軸 和 y軸的位置
三個值:表示x軸,y軸,z軸
兼容性:
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。