2D變形(CSS3) transform

transform是CSS3中具備顛覆性的特徵之一,能夠實現元素的位移、旋轉、傾斜、縮放,甚至支持矩陣方式spa

變形轉換 transform transform 變換 變形的意思orm

移動 translate(x, y)

1. 2D移動是2D轉換裏面的 一種功能,能夠改變元素在頁面中的位置,相似定位it

 

translate 移動平移的意思io

 translate(50px,50px);form

使用translate方法來將文字或圖像在水平方向和垂直方向上分別垂直移動50像素。class

能夠改變元素的位置,x、y可爲負值;transform

ranslate(x,y)水平方向和垂直方向同時移動(也就是X軸和Y軸同時移動)
translateX(x)僅水平方向移動(X軸移動)
translateY(Y)僅垂直方向移動(Y軸移動)transition

2.重點

  • 定義2D轉換中的移動,沿X軸和Y軸移動元素方法

  • translate最大的優勢:不會影響到其餘元素的位置margin

  • translate中的百分比單位是相對自身元素的translate:(50%,50%);

  • 對行內標籤沒有效果

 

.box {
width: 499.9999px;
height: 400px;
background: pink;
position: absolute;
left:50%;
top:50%;
transform:translate(-50%,-50%); /* 走的本身的一半 */
}

讓定位的盒子水平垂直居中

 

縮放 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的值,做用是讓元素放大

注意

  • 注意其中的x和y用逗號隔開,不跟單位

  • transform:scale(1,1)寬和高都放大一倍,至關於沒有放大

  • transform:scale(2):只寫一個參數,第二個參數則和第一個參數同樣,至關於scale(2,2)

  • transform:(0.5,0.5):縮小

  • scale縮放最大的優點:能夠設置轉換中心點縮放,默認以中心點縮放的,並且不影響其餘盒子

旋轉 rotate(deg)

 

能夠對元素進行旋轉,正值爲順時針,負值爲逆時針;

transform:rotate(45deg);

注意單位是 deg 度數

重點

  • rotate裏面跟度數,單位是deg 好比rotate(45deg)

  • 角度爲正值時,順時針,負值時爲逆時針

  • 默認旋轉中心點是元素中心點

transform-origin能夠調整元素轉換變形的原點

重點

  • 注意後面的參數x和y用空格隔開

  • x y默認轉換中心點是元素的中心點(50% 50%)

  • 還能夠誒x y設置像素或方位名詞(top bottom left right center)

 div{transform-origin: left top;transform: rotate(45deg); }  /* 改變元素原點到左上角,而後進行順時旋轉45度 */    

若是是4個角,能夠用 left top這些,若是想要精確的位置, 能夠用 px 像素。

 div{transform-origin: 10px 10px;transform: rotate(45deg); }  /* 改變元素原點到x 爲10  y 爲10,而後進行順時旋轉45度 */ 

 div {
            width: 300px;
            height: 300px;
            margin: 200px auto;
            background-color: pink;
            transition: all 0.5s;
            /* 改變中心點 */
            transform-origin: top left;
        }

        div:hover {
            /* 順時針旋轉 */
            transform: rotate(180deg);
        }

傾斜 skew(deg, deg)

transform:skew(30deg,0deg);

該實例經過skew方法把元素水平方向上傾斜30度,處置方向保持不變。

可使元素按必定的角度進行傾斜,可爲負值,第二個參數不寫默認爲0。

 

2D轉換綜合寫法

注意:

  1. 同時使用多個轉換,格式爲:transform:translate() rotate() scale() …等

  2. 其順序會影響轉換效果。(先旋轉會改變座標軸方向)

  3. 當咱們同時又位移和其餘屬性時,記得將位移放到最前面

相關文章
相關標籤/搜索