您好,登錄后才能下訂單哦!
小編給大家分享一下css3中2d變形的4種方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
css3中2d變形4種:1、位移translate(),將元素在水平或垂直方向上移動指定距離;2、縮放scale(),對元素進行水平或垂直方向的縮放;3、旋轉(zhuǎn)rotate(),可以對元素進行旋轉(zhuǎn);4、傾斜skew(),對元素進行傾斜轉(zhuǎn)換。
轉(zhuǎn)換是CSS3中具有顛覆性的特征之一,可以實現(xiàn)元素的位移、旋轉(zhuǎn)、變形、縮放,甚至支持矩陣方式,配合過渡和即將學習的動畫知識,可以取代大量之前只能靠Flash才可以實現(xiàn)的效果。
變形轉(zhuǎn)換 transform
1、移動 translate(x, y)
translate(50px,50px);
使用translate方法來將文字或圖像在水平方向和垂直方向上分別垂直移動50像素。
可以改變元素的位置,x、y可為負值;
translate(x,y)水平方向和垂直方向同時移動(也就是X軸和Y軸同時移動)
translateX(x)僅水平方向移動(X軸移動)
translateY(Y)僅垂直方向移動(Y軸移動)
.box { width: 499.9999px; height: 400px; background: pink; position: absolute; left:50%; top:50%; transform:translate(-50%,-50%); /* 走的自己的一半 */ }
讓定位的盒子水平居中
2、縮放 scale(x, y)
transform:scale(0.8,1);
可以對元素進行水平和垂直方向的縮放。該語句使用scale方法使該元素在水平方向上縮小了20%,垂直方向上不縮放。
scale(X,Y)使元素水平方向和垂直方向同時縮放(也就是X軸和Y軸同時縮放)
scaleX(x)元素僅水平方向縮放(X軸縮放)
scaleY(y)元素僅垂直方向縮放(Y軸縮放)
scale()的取值默認的值為1,當值設置為0.01到0.99之間的任何值,作用使一個元素縮??;而任何大于或等于1.01的值,作用是讓元素放大
3、旋轉(zhuǎn) rotate(deg)
可以對元素進行旋轉(zhuǎn),正值為順時針,負值為逆時針;
transform:rotate(45deg);
body { background-color: skyblue; } .container { width: 100px; height: 150px; border: 1px solid gray; margin: 300px auto; position: relative; } .container > img { display: block; width: 100%; height: 100%; position: absolute; transform-origin: top right; /* 添加過渡 */ transition: all 1s; } .container:hover img:nth-child(1) { transform: rotate(60deg); } .container:hover img:nth-child(2) { transform: rotate(120deg); } .container:hover img:nth-child(3) { transform: rotate(180deg); } .container:hover img:nth-child(4) { transform: rotate(240deg); } .container:hover img:nth-child(5) { transform: rotate(300deg); } .container:hover img:nth-child(6) { transform: rotate(360deg); }
4、傾斜 skew(deg, deg)
transform:skew(30deg,0deg);
該實例通過skew方法把元素水平方向上傾斜30度,處置方向保持不變。
可以使元素按一定的角度進行傾斜,可為負值,第二個參數(shù)不寫默認為0。
transform-origin可以調(diào)整元素轉(zhuǎn)換的原點
p{transform-origin: left top;transform: rotate(45deg); } /* 改變元素原點到左上角,然后進行順時旋轉(zhuǎn)45度 */
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>2D變形-移動</title> <style> p { width: 100px; height: 100px; background-color: pink; transition: all 0.5s; /* 過渡效果 */ } p:active { /* transform: translateX(100px);X軸 */ /* a:activ 鼠標沒點擊沒有松開鼠標的時候觸發(fā)的狀態(tài) 相當于點擊 */ /* 只有一個參數(shù)就是 X軸 */ /* transform: translate(50px); */ transform: translateY(100px); /* Y軸 */ /* transform: translate(100px,100px); */ } </style></head><body> <p></p></body></html>
定位的盒子完美居中寫法
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>讓定位的盒子居中對齊</title> <style> p { width: 200px; height: 200px; background-color: skyblue; /* transform: translate(100px); */ /* 水平移動100px; */ /*transform: translate(50%); p自己的width的百分比 */ /* 之前盒子居中定位 */ position: absolute; left: 50%; top: 50%; /* margin-left: -100px; 需要計算不合適 */ transform: translate(-50%,-50%); } </style></head><body> <p></p></body></html>
設置變形中心點
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>設置變形中心點</title> <style> img { margin: 200px; transition: all 0.6s; /*transform-origin: center center; 默認 */ transform-origin: bottom right; } img:hover { transform: rotate(360deg); /* 旋轉(zhuǎn)180度 */ } </style></head><body> <p> <img src="images/pk1.png" width="200" alt=""> </p></body></html>
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>旋轉(zhuǎn)的楚喬傳</title> <style> p { width: 200px; height: 100px; border: 1px solid skyblue; margin: 200px auto; position: relative; } p img { width: 100%; position: absolute; top: 0; left: 0; transition: all 0.6s; transform-origin: top right; } p:hover img:nth-child(1) { /* 鼠標經(jīng)過p 第一張圖片旋轉(zhuǎn) */ transform: rotate(60deg); } p:hover img:nth-child(2) { /* 鼠標經(jīng)過p 第一張圖片旋轉(zhuǎn) */ transform: rotate(120deg); } p:hover img:nth-child(3) { /* 鼠標經(jīng)過p 第一張圖片旋轉(zhuǎn) */ transform: rotate(180deg); } p:hover img:nth-child(4) { /* 鼠標經(jīng)過p 第一張圖片旋轉(zhuǎn) */ transform: rotate(240deg); } p:hover img:nth-child(5) { /* 鼠標經(jīng)過p 第一張圖片旋轉(zhuǎn) */ transform: rotate(300deg); } p:hover img:nth-child(6) { /* 鼠標經(jīng)過p 第一張圖片旋轉(zhuǎn) */ transform: rotate(360deg); } </style></head><body> <p> <img src="images/6.jpg" alt=""> <img src="images/5.jpg" alt=""> <img src="images/4.jpg" alt=""> <img src="images/3.jpg" alt=""> <img src="images/2.jpg" alt=""> <img src="images/1.jpg" alt=""> </p></body></html>
以上是css3中2d變形的4種方法的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。