css之3D变换

时间:2023-03-09 19:25:08
css之3D变换

3D变换的x,y,z轴是分别效果是:

x轴旋转的话,就是头和脚进行转动

y轴旋转的话,就是左右手进行转动

z轴旋转的话,就是整个身体平铺在旋转。

上面是针对旋转的意思去,但是对于其他的类似一样,就是这样子去理解x,y,z轴的在哪里的

transform: rotateX(360deg);
transform: rotateY(360deg);
transform: rotateZ(360deg);

变换跟2D同理

最主要的区别是透视视图“景深”

<!--景深的作用:
1、让3D场景有近大远小的效果(就是肉眼距离屏幕的距离)
2、是一个不可以继承的。但他可以作用于后代元素(不是作用于本身的)
原理:
景深越大,灭点越远,元素变形更小
景深越小,灭点越近,元素变形更大

灭点:灭点就是你看到的尽头
景深基点:视角的位置
组合变换的话,放本身的话,一定要放在首位

如果要让景深有效果,又想放在本身的元素上,就需要进行组合处理。例如:

transform:perspective(100px) rotateX(360deg) ;

总体代码如图所示:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
*{
margin: 0;
padding: 0; }
#wrap{
width: 400px;
height: 400px;
position: absolute;
top: 50%;
left: 50%;
margin-left: -200px;
margin-top: -200px;
border: 1px solid black;
/*perspective: 100px;*/ }
#inner{
width: 200px;
height: 200px;
position: absolute;
top: 50%;
left: 50%;
margin-left: -100px;
margin-top: -100px;
border: 1px solid pink;
border-radius: 50%;
text-align: center;
line-height: 200px;
font-weight: bold;
transition: 2s;
}
#wrap:hover #inner{
/*transform: rotateX(360deg);
transform: rotateY(360deg);
transform: rotateZ(360deg);
transform: scaleX(2);
transform: scaleZ(2);*/
/*transform: translateZ(100px);*/
transform:perspective(100px) rotateX(360deg) ;
}
</style>
</head>
<body>
<div id="wrap">
<div id="inner">
Rainbow
</div>
</div>
</body>
</html>

-->