CSS 二维变换
CSS 可以通过 transform 属性在二维空间或者三维空间移动、旋转、缩放和倾斜元素,本文讨论二维变换相关的操作。
CSS 可以通过 transform
属性在二维空间或者三维空间移动、旋转、缩放和倾斜元素,本文讨论二维变换相关的操作。
CSS 二维变换函数
transform
属性的值为一个或多个预定义的 CSS 变换函数。可用的变换函数如下:
translate()
:rotate()
scaleX()
scaleY()
scale()
skewX()
skewY()
skew()
matrix()
**提示:**您将在下一章中了解 3D 变换。
translate()
函数
translate()
函数将元素从其当前位置移动指定的坐标位置。
将元素向右移动 50px,向下移动 100px:
div {
transform: translate(50px, 100px);
}
rotate()
函数
rotate()
函数根据给定的度数顺时针或逆时针旋转元素。默认根据元素的中心点进行旋转。
将元素顺时针旋转 20 度:
div {
transform: rotate(20deg);
}
使用负值将逆时针旋转元素。
将元素逆时针旋转 20 度:
div {
transform: rotate(-20deg);
}
scale()
函数
scale()
函数可以按比例放大或缩小元素的尺寸。
将元素的宽度变为原来的 2 倍,高度变为原来的 3 倍:
div {
transform: scale(2, 3);
}
将元素宽度和高度减半:
div {
transform: scale(0.5, 0.5);
}
scaleX()
函数
scaleX()
函数可以按比例放大或缩小元素宽度。
将元素的宽度增加为其原来的 2 倍:
div {
transform: scaleX(2);
}
将元素的宽度减小为原来的一半:
div {
transform: scaleX(0.5);
}
scaleY()
函数
scaleY()
函数可以按比例放大或缩小高度。
将元素高度变为原来的 3 倍:
div {
transform: scaleY(3);
}
将元素的高度变为原来的一半:
div {
transform: scaleY(0.5);
}
skew()
函数
skew()
函数将元素沿 X 轴和 Y 轴倾斜或者拉伸给定的角度。默认以元素的中心点为中心。
将 <div>
元素 X 方向倾斜 20 度,Y 方向倾斜 10 度:
div {
transform: skew(20deg, 10deg);
}
skewX() 函数
skewX()
函数将元素沿 X 轴倾斜或者拉伸给定的角度。默认以元素的中心点为中心。
将 <div>
元素 X 轴方向倾斜 20 度:
div {
transform: skewX(20deg);
}
skewY()
函数
skewY()
函数将元素沿 Y 轴倾斜或者拉伸给定的角度。默认以元素的中心点为中心。
将 <div>
元素 Y 轴方向倾斜 20 度:
div {
transform: skewY(20deg);
}
matrix()
函数
matrix()
函数整合了所有的二维变换函数。matrix()
函数有六个参数,允许您旋转、缩放、移动(平移)和倾斜(拉伸)元素。
matrix()
语法:
matrix(scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY())
div {
transform: matrix(1, -0.3, 0, 1, 0, 0);
}
二维变换的浏览器支持情况
表中列出了完全支持 transform
属性的第一个浏览器版本。
属性 | IE | Chrome | Firefox | Safari | Opera |
---|---|---|---|---|---|
transform | 36.0 | 10.0 | 16.0 | 9.0 | 23.0 |
CSS 变换属性
下表列出了所有二维变换属性:
属性 | 说明 |
---|---|
transform |
设置二维变换或者三维变换规则 |
transform-origin |
指定变换的原点 |
CSS 二维变换函数
函数 | 说明 |
---|---|
matrix(n,n,n,n,n,n) |
使用一个矩阵顶一个二维变换 |
translate(x,y) |
将元素平移到指定的位置 |
translateX(n) |
将元素沿 X 轴平移到指定的位置 |
translateY(n) |
将元素沿 Y 轴平移到指定的位置 |
scale(x,y) |
按比例放大或缩小元素的尺寸 |
scaleX(n) |
按比例放大或缩小元素的宽度 |
scaleY(n) |
按比例放大或缩小元素的高度 |
rotate(angle) |
旋转指定的角度 |
skew(x-angle,y-angle) |
拉伸或者倾斜元素 |
skewX(angle) |
将元素沿 X 轴拉伸或者倾斜 |
skewY(angle) |
将元素沿 Y 轴拉伸或者倾斜 |