1.3D 相关的属性
- perspective 属性定义 3D 元素距视图的距离,以像素计。当为元素定义 perspective 属性时,其子元素会获得透视效果,而不是元素本身。
- 子元素保留3d转换位置,添加给父元素
transform-style:preserve-3d;
元素背面不可见
backface-visibility: hidden;
2.位移
transform:translateZ();
沿Z轴方向移动transform:translate3d(100px,200px,200px);
XYZ三个轴共同作用transform:translateX(100px) translateY(200px) translateZ(200px);
等同上面效果3.旋转
transform:rotateX(45deg);
绕X轴旋转transform:rotateY();
绕Y轴旋转transform:rotateZ();
绕Z轴旋转transform:rotate3d(x,y,z,45deg);
xyz代表矢量方向
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.wrap {
width: 300px;
height: 300px;
margin: 200px auto 0;
position: relative;
transform-style: preserve-3d;
/* perspective: 2000px; */
transform: rotateX(-20deg) rotateY(-20deg);
}
.wrap div {
width: 300px;
height: 300px;
background: rgba(166, 166, 166, 0.5);
text-align: center;
line-height: 300px;
font-size: 100px;
color: #fff;
position: absolute;
top: 0;
left: 0;
border: 1px solid red;
}
.box1 {
transform:translateZ(150px);
}
.box2 {
transform:rotateY(180deg) translateZ(150px);
}
.box3 {
transform:rotateX(90deg) translateZ(150px);
}
.box4 {
transform:rotateX(-90deg) translateZ(150px);
}
.box5 {
transform:rotateY(-90deg) translateZ(150px);
}
.box6 {
transform:rotateY(90deg) translateZ(150px);
}
</style>
</head>
<body>
<div class="wrap">
<div class="box1">前</div>
<div class="box2">后</div>
<div class="box3">上</div>
<div class="box4">下</div>
<div class="box5">左</div>
<div class="box6">右</div>
</div>
</body>
</html>
4.缩放
transform:scaleZ();
Z轴缩放,需要在立方体上演示才有效果transform:scale3d(x,y,z);
XYZ轴共同缩放