CSS3屬性transform詳解之(旋轉:rotate,縮放:scale,傾斜:skew,移動:translate)
一.旋轉 rotate
用法:transform: rotate(45deg);
共一個引數“角度”,單位deg為度的意思,正數為順時針旋轉,負數為逆時針旋轉,上述程式碼作用是順時針旋轉45度。
二.縮放 scale
用法:transform: scale(0.5) 或者 transform: scale(0.5, 2);
引數表示縮放倍數;
- 一個引數時:表示水平和垂直同時縮放該倍率
- 兩個引數時:第一個引數指定水平方向的縮放倍率,第二個引數指定垂直方向的縮放倍率。
三.傾斜 skew
用法:transform: skew(30deg) 或者 transform: skew(30deg, 30deg);
引數表示傾斜角度,單位deg
- 一個引數時:表示水平方向的傾斜角度;
- 兩個引數時:第一個引數表示水平方向的傾斜角度,第二個引數表示垂直方向的傾斜角度。
關於skew傾斜角度的計算方式表面上看並不是那麼直觀,這裡借鑑某大拿繪製的圖舉例說明一下:
首先需要說明的是skew的預設原點transform-origin是這個物件的中心點
skewX(30deg) 如下圖:
skewY(10deg) 如下圖:
skew(30deg, 10deg) 如下圖:
我當初就是看到此圖瞬間理解的。
四.移動 translate
用法:transform: translate(45px) 或者 transform: skew(45px, 150px);
引數表示移動距離,單位px,
- 一個引數時:表示水平方向的移動距離;
- 兩個引數時:第一個引數表示水平方向的移動距離,第二個引數表示垂直方向的移動距離。
五.基準點 transform-origin
在使用transform方法進行文字或影象的變形時,是以元素的中心點為基準點進行的。使用transform-origin屬性,可以改變變形的基準點。
用法:transform-origin: 10px 10px;
共兩個引數,表示相對左上角原點的距離,單位px,第一個引數表示相對左上角原點水平方向的距離,第二個引數表示相對左上角原點垂直方向的距離;
兩個引數除了可以設定為具體的畫素值,其中第一個引數可以指定為left、center、right,第二個引數可以指定為top、center、bottom。
六.多方法組合變形
上面我們介紹了使用transform對元素進行旋轉、縮放、傾斜、移動的方法,這裡講介紹綜合使用這幾個方法來對一個元素進行多重變形。
用法:transform: rotate(45deg) scale(0.5) skew(30deg, 30deg) translate(100px, 100px);
這四種變形方法順序可以隨意,但不同的順序導致變形結果不同,原因是變形的順序是從左到右依次進行,這個用法中的執行順序為1.rotate 2.scalse 3.skew 4.translate