任何一個元素都有一個中心原點,默認情況下,元素的中心原點位於X軸和Y軸的50%處。
默認情況下,CSS3變形進行的位移、縮放、旋轉、傾斜都是以元素的中心原點進行變形。
假如我們要使得元素進行位移、縮放、旋轉、傾斜這些變形操作的中心原點不是原來元素的中心位置,那該怎麼辦呢?
在CSS3中,我們可以通過transform-origin屬性來改變元素變形時的中心原點位置。
語法:
transform-origin:取值;
說明:
transform-origin屬性取值有2種:一種是采用長度值,另外一種是使用關鍵字。長度值一般使用百分比作為單位,很少使用px、em等作為單位。
不管transform-origin取值為長度值還是關鍵字,都需要設置水平方向和垂直方向的值。transform-origin屬性取值跟背景位置background-position屬性取值相似,大家可以回去看看,對比理解一下。
舉例:
在線測試<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>CSS3中心原點transform-origin屬性</title> <style type="text/css"> /*設置原始元素樣式*/ #origin { margin:100px auto;/*水平居中*/ width:200px; height:100px; border:1px dashed gray; } #current { width:200px; height:100px; color:white; background-color: #3EDFF4; text-align:center; transform-origin:right center; -webkit-transform-origin:right center;/*兼容-webkit-引擎浏覽器*/ -moz-transform-origin:right center; /*兼容-moz-引擎浏覽器*/ transform:rotate(30deg); -webkit-transform:rotate(30deg); /*兼容-webkit-引擎浏覽器*/ -moz-transform:rotate(30deg); /*兼容-moz-引擎浏覽器*/ } </style> </head> <body> <div id="origin"> <div id="current"></div> </div> </body> </html>
在浏覽器預覽效果如下:
分析:
這裡使用“transform-origin:right center;”使得CSS3變形的中心原點由“正中”變為“靠右居中”。在這裡,元素進行旋轉是圍繞“新中心原點”作為旋轉的中心原點。