因為下一篇會介紹 CSS Transform 的方式使元素置中,因此這一篇會先簡單介紹 Transform。
CSS transform 可以 move (移動),rotate (旋轉),scale (放大),和 skew (傾斜) 一個元素。
2D Transform 主要有以下屬性:
translate()
rotate()
scaleX()
scaleY()
scale()
skewX()
skewY()
skew()
matrix()
translate()
translate()
會根據原本的位置進行x,y 軸的移動。
第一個參數為將元素沿著 x 軸移動多少距離,第二個參數為將元素沿著 y 軸移動多少距離。
rotate()
rotate()
會沿著方向進行旋轉,單位是度。rotate(20deg)
表示將 div 依順時鐘的方向轉 20 度。rotate(-20deg)
表示將 div 依逆時鐘的方向轉 20 度
scaleX()
scaleX()
可以將元素的 width 放大或縮小。
scaleX(2)
表示將元素放大 2 倍的寬度。
scaleX(0.5)
表示將元素縮小成原本的二分之一寬度。
scaleX(-0.5)
表示將元素縮小成原本的二分之一寬度,並且呈現左右相反的對稱圖
scaleY()
scaleY()
可以將元素的 height 放大或縮小。
scaleY(2)
表示將元素放大 2 倍的高度。
scaleY(0.5)
表示將元素縮小成原本的二分之一高度。
scaleY(-0.5)
表示將元素縮小成原本的二分之一高度,並且呈現上下相反的對稱圖。
scale()
scale()
= scaleX()
+ scaleY()
。
scale(2, 3)
表示將元素放大 2 倍的寬度,放大 3 倍高度。
skewX()
skew 的中文叫做偏度。skewX()
表示朝著 x 軸傾斜多少度。
skewX(20deg)
表示將元素朝著 X 軸傾斜 20 度。
skewY()
skew 的中文叫做偏度。skewY()
表示朝著 y 軸偏多少度。
skewX(20deg)
表示將元素朝著 y 軸 傾斜 20 度。
skew()
skew()
= skewX()
+ skewY()
skew(20deg, 30deg)
表示將元素朝著 x 軸 傾斜 20 度,朝著 y 軸傾斜 30 度。
matrix()
matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY())
matric()
總共有 6 個參數, 這6 個參數上述皆有介紹過,把對應的值帶入即可使用 matrix()
。
參考資料:
CSS 2D Transforms