本文最后更新于:2024年4月25日 上午
2D转换
该属性用于元素的2D与3D转换
🥝元素偏移
translate(posX, posY)
相对原始位置偏移(posX, posY)
1 2 3
| div { transform: translate(80px, 80px); }
|
动画效果如下:
🥝元素旋转
rotate(ndeg)
元素顺时针转动ndeg
1 2 3
| div { transform: rotate(360deg); }
|
动画效果如下:
🥝元素缩放
scaleX(x)
元素宽度缩放x
倍
scaleY(y)
元素高度缩放y
倍
scale(x, y)
元素宽度缩放x
倍,元素高度缩放y
倍
1 2 3 4 5
| div { transform: scaleX(0.5) scaleY(2); transform: scale(0.5, 2); }
|
动画效果如下:
🥝元素倾斜
skewX(ndeg)
沿x轴倾斜ndeg
skewY(mdeg)
沿y轴倾斜mdeg
skew(ndeg, mdeg)
沿x轴倾斜ndeg
,沿y轴倾斜mdeg
1 2 3 4 5 6 7 8 9 10 11 12
| div { transform: skewX(80deg); }
div { transform: skewY(80deg); }
div { transform: skew(80deg, 80deg); }
|
动画效果如下:
🥝方法缩写
matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())
以上方法的缩写
角度为其正切值
1 2 3 4 5 6
| div { transform: scaleX(0.5) skewY(80deg) skewX(80deg) scaleY(2) translateX(80px) translateY(80px); transform: matrix(0.5, 5.6, 5.6, 2, 80, 80); }
|
该属性用于改变元素旋转中心位置(默认原点为元素几何中心位置)
center
50%
top
/right
第一个参数
bottom
/left
第二个参数
1 2 3 4 5 6 7 8 9 10 11 12
| div { transform-origin: 0 0; }
div { transform-origin: 50% 50%; }
div { transform-origin: 100% 100%; }
|
动画效果如下:
3D转换
该属性用于元素的2D与3D转换
🍉元素移动
translateX(posX)
向x轴正方向偏移posX
translateY(posY)
向y轴正方向偏移posY
translateZ(posZ)
向Z轴正方向偏移posZ
translate3d()
向x轴正方向偏移posX
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| div { transform: translateX(80px); }
div { transform: translateY(80px); }
div { transform: translateZ(80px); }
div { transform: translate3d(80px, 80px, 80px); }
|
动画效果如下:
🍉元素旋转
rotateX(ndeg)
绕x轴顺时针旋转ndeg
rotateY(mdeg)
绕y轴顺时针旋转mdeg
rotateZ(kdeg)
绕z轴顺时针旋转kdeg
rotate3d(x, y, z, ndeg)
绕x轴顺时针旋转(x * n)deg
,绕y轴顺时针旋转(y * n)deg
,绕z轴顺时针旋转(z * n)deg
(x, y, z ∈ [0, 1])
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| div { transform: rotateX(360deg); }
div { transform: rotateY(360deg); }
div { transform: rotateZ(360deg); }
div { transform: rotate3d(1, 1, 1, 360deg); }
|
动画效果如下:
🍉元素缩放
scaleX(x)
scaleY(y)
scaleZ(z)
scale3d(x, y, z)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| div { transform: scaleX(0.5); }
div { transform: scaleY(2); }
div { transform: scaleZ(2); }
div { transform: scale3d(0.5, 2, 2); }
|
动画效果如下:
🍉方法缩写(不推荐)
1 2 3
| div { transform: matrix3d(?????) }
|
元素在三维坐标下的元素旋转中心位置,同2D转换
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| div { transform-origin: 50% 50% 0; transform: rotateY(360deg); }
div { transform-origin: 50% 50% -25px; transform: rotateY(360deg); }
div { transform-origin: 100% 50% -25px; transform: rotateY(360deg); }
|
动画效果如下:
该属性设至子元素在容器内的展示方式(该属性不会继承)
1 2 3 4 5 6 7 8 9
| .2d { transform-style: flat; }
.3d { transform-style: preserve-3d; }
|
动画效果如下:
perspective属性
该属性表示子元素的透视效果,添加后子元素z轴运动有缩放效果
1 2 3 4 5 6 7
| .perspective { perspective: 200px; }
.translate { transform: translateZ(80px); }
|
1 2 3 4 5 6 7 8 9
| <div> <div class="translate"></div> </div>
<div class="perspective"> <div class="translate"></div> </div>
|
动画效果如下:
perspective-origin属性
该属性设置子元素透视效果观察点位置,需配合perspective-origin
属性使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| div { perspective: 200px; perspective-origin: 0 0; }
div { perspective: 200px; perspective-origin: 50% 50%; }
div { perspective: 200px; perspective-origin: 100% 100%; }
|
动画效果如下:
backface-visibility属性
该属性设定元素背面是否可见(默认可见)
1 2 3 4 5
| div { transform: rotateY(360deg); backface-visibility: hidden; backface-visibility: visible; }
|
动画效果如下:
🔵CSS3空间变换
https://qingshaner.com/CSS3空间变换/