若想看到變換效果,要給圖形的盒子設置過渡 transition: 3scss
語法:transform: translate(x,y);spa
其中x表示水平方向的位移(即左右),y表示垂直方向的位移(即上下)。code
括號內最多隻能有2個值,當只有1個值的時候表示水平位移。orm
值的大小能夠爲正數,也能夠爲負數。當值爲負數的時候向反方向移動。blog
值的單位能夠爲像素(如100px,-100px),也能夠爲百分比(如50%,-50%)。當值用百分比來表示的時候,參照的是元素translate所在盒子的大小。圖片
translate屬性不脫標!同步
語法:transform:rotate();it
括號內表示旋轉的角度,必須使用單位deg。io
當括號內的值爲正數時,表示順時針旋轉;爲負數時,表示逆時針旋轉。form
語法:transform-origin: x y;
x表示水平方向,值能夠設置爲方位值left,center,right;或者像素px;或者百分數%。
y表示垂直方向,值能夠設置爲方位值top,center,bottom;或者像素px;或者百分數%。
當x或y的值爲負數時,旋轉原點在盒子以外。
默認旋轉原點爲所在盒子的中心點:center center。(x和y之間用空格隔開。)
1 <!-- 當鼠標進入path盒子時,風火輪自動向右轉動;鼠標移出時風火輪復原 --> 2 <body> 3 <div class="path"> 4 <div class="wheel"> 風火輪 </div> 5 </div> 6 </body> 7 8 <style> 9 /* 此處省略path及風火輪樣式,設置鼠標進入盒子時的樣式 */ 10 .path:hover .wheel { 11 /* translate()中只有一個值,表示水平移動,上下不動 */ 12 /* rotate()中設置爲3600度表示轉動十圈 */ 13 transform: translate(1000px) rotate(3600deg); 14 } 15 </style>
若是既要發生位移又要發生旋轉,必須在同一個transform內同時設置多個屬性,用空格隔開,不能分開寫成兩個transform。
由於分開寫成兩個後會使樣式發生重疊,展現最後定義的transform。
語法:transform: scale(x,y);
x表示水平方向(改變圖形的寬度),y表示垂直方向(改變圖形的高度)。當括號內只有一個值的時候,圖形的寬和高同步變換。
括號裏的值爲數字:(值的正負不會影響圖形變換)
語法:transform: skew(x,y);
x表示左右傾斜(左邊和右邊),上下兩條邊保持水平(經常使用)。
y表示上下傾斜(上邊和下邊),左右兩條邊保持垂直。只有一個值的時候默認爲左右傾斜。
值的單位爲deg,表示傾斜度數。如60deg。
若是想要盒子內部的某些內容不傾斜,須要單獨設置:給字內容加標籤,而後設置transform: skew()內的值爲負的父標籤的值。
(若是給字內容加的標籤爲行內元素如span,須要用display: block或display: inline-block轉換成塊級元素或行內塊元素。)
盒子居中要用到「子絕父相」。即:
子元素設置 position: absolute; 父元素設置 position: relative; 而後設置left、top、margin等值:
1) left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
2) lef: 50%;
top: 50%;
margin-left: -自身寬度一半;
margin-top: -自身寬度一半;
3) left: 50%;
top: 50%;
transform: translate(-50%, -50%);