欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CSS3:3D转换

程序员文章站 2022-07-12 23:32:10
...

3维坐标系:

  • z轴:垂直屏幕:往外是正值,往里是负值

CSS3:3D转换
3D转换主要知识点:

  • 3D位移:translate3D(x,y,z)
  • 3D旋转:rotate3D(x,y,z)
  • 透视(3D眼镜):perspective
  • 3D呈现:transform-style

3D位移

translateZ一般跟px单位,不用百分比
CSS3:3D转换

透视(perspective)

透视可以比喻成我们的3D眼镜,近大远小:透视越大,成像越小;透视越小,成像越大。透视单位为px

CSS3:3D转换

透视要写在被观察元素的父盒子上面

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册页面</title>
    <style>
        body{//此时div的父元素为body,所以perspective应该写在body元素上面
            perspective: 200px;
        }
        div{
            background-color: pink;
            width: 500px;
            height: 500px;
            transform: translate(100px,400px,500px);
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

3D转换之旋转

旋转后用perspective看效果更好
简写方式:

  • transform:rotate(x,y,z,deg),哪个坐标有值就往哪个坐标旋转
    例如:transform:rotate(1,0,0,45deg);表示往x轴旋转(有值即可transform:rotate(2,0,0,45deg)也是旋转45度)。

此时如果有两个轴都有数值,例如:
transform:rotate(1,1,0,45deg);表示往矢量方式计算旋转

CSS3:3D转换

CSS3:3D转换
如何判断旋转的方向?
左手定则:用左手拇指指向轴的正方向,手指弯曲的位置即是旋转的方向
CSS3:3D转换

3D呈现(transform-style)

当我们想完成下面这张图的右侧这样的效果时。我们会发现我们绕x轴旋转之后得到的效果竟然是左边这样的:
CSS3:3D转换

这是因为我们子元素默认是没有开启三维立体环境:transform-style:flat
其就是控制子元素是否开启三维立体环境的.(注意是子元素!!)transform-style:preserve-3d

相关标签: CSS