咱們利用css3中的transform能夠實現文字或圖像的旋轉、縮放、傾斜和移動四種類型的變形處理。css
本文使用的是標準的transform,亦可使用各個瀏覽器對應私有的屬性。對應以下html
不過在個人電腦上用transform效果相同,Chrome 49 Firefox 46 IE 10css3
1、旋轉(rotate)web
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> img:hover{ transform: rotate(90deg); } </style> </head> <body> <img src="http://dl.bizhi.sogou.com/images/2012/03/23/107607.jpg?f=download"> </body> </html>
語法格式以下:chrome
rotate(angle)瀏覽器
旋轉角度單位有:函數
轉換比例爲: 90deg = 100grad = 0.25turn ≈ 1.570796326794897rad字體
2、縮放(scale)code
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> img:hover{ transform: scale(1,-1) } </style> </head> <body> <img src="http://dl.bizhi.sogou.com/images/2012/03/23/107607.jpg?f=download"> </body> </html>
語法格式以下:orm
scale(number,[number2])
number2是可選的,若是未設置,則與默認與number相同。number能夠爲正數、負數、小數。
咱們將number分爲兩部分,正負號(+,-)和數值(number的絕對值)。負號(-)意味着元素要被旋轉180度,數值部分大於1則放大,小於一則縮小,等於一既不放大又不縮小,爲零時消失。
3、移動(translate)
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> img:hover{ transform: translate(2in,5cm) } </style> </head> <body> <img src="http://dl.bizhi.sogou.com/images/2012/03/23/107607.jpg?f=download"> </body> </html>
語法格式以下:
translate(value1,[value2])
第一個參數表示相對於原位置X軸偏移距離,第二個參數表示相對於Y軸偏移個距離,若是省略了第二個參數,則默認爲0。正數向右和下偏移,負數向左和上偏移。
距離的單位有:
關於這些長度單位,這有一篇很好的介紹連接http://www.w3cplus.com/css/the-lengths-of-css.html,本段也是參照此連接,不過提示你們,瀏覽器的版本也在不斷的迭代,有些特性須要本身去驗證,好比vmax屬性在個人chrome瀏覽器下也行正常運行。
4、傾斜(skew)
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> img:hover{ transform: skew(30deg,-0.1turn) } </style> </head> <body> <img src="http://dl.bizhi.sogou.com/images/2012/03/23/107607.jpg?f=download"> </body> </html>
語法格式:
skew(angle,[angle])
第一個參數表示相對於X軸進行傾斜,第二個參數相對於Y軸進行傾斜,若是省略了第二個參數,則默認爲0。
rotate函數只是旋轉,不改變元素的形狀,但skew函數會改變元素的形狀。
5、變形
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> img:hover{ transform: matrix(1,0.4,0,1,0,0) } </style> </head> <body> <img src="http://dl.bizhi.sogou.com/images/2012/03/23/107607.jpg?f=download"> </body> </html>
matrix()函數是一個3x3的矩陣,將舊的參數轉換成新的參數。
目前,我對此也不是很瞭解,你們若有興趣自行Google。
6、Transform-origin
CSS變形的原點默認是對象的中心點,若是要改變這個中心點,可使用transform-origin屬性進行定義。
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> img:hover{ /*以左上角爲原點旋轉*/ transform-origin: top left; transform: rotate(30deg); } </style> </head> <body> <img src="http://dl.bizhi.sogou.com/images/2012/03/23/107607.jpg?f=download"> </body> </html>
語法格式:
transform-origin:[ [ <percentage> | <length> | left | center | right ][ <percentage> | <length> | top | center | buttom ] ? ] | [ [ left | center | right ] || [ top | center | bottom ]]
transform-origin屬性的初始值是50%,50%,使用與塊狀元素和內聯元素。transform-origin接受連個參數,他們能夠是百分比、em、px等具體值也能夠是left、center、right,或者top、middle、bottom等描述性關鍵字。