CSS3 3D转换

CSS3 3D转换

  • 3D转换我们工作中最常用的是3D位移和3D旋转

  • 主要知识点

    • 3D位移translate3d(x,y,z)
    • 3D旋转rotate3d(x,y,z)
    • 透视perspective
    • 3D呈现transfrom-style

3D位移translate3d(x,y,z)

  • translateX(x,y,z)仅仅在X轴上移动
  • translateY(x,y,z)仅仅在Y轴上移动
  • translateZ(x,y,z)仅仅是在Z轴上移动
    • 注意:translateZ一般用px单位
  • translate3d(x,y,z)其中x,y,z分别指要移动的轴的方向和距离
    • x,y,z是不能省略的,没有写0

透视perspective

  • 在2D平面产生近大远小视觉立体,但是只是效果二维

    • 如果想要在网页产生3D效果需要透视(理解成3D物体投影在2D平面内)
    • 模拟人类的视觉位置,可认为安排一只眼睛去眼
    • 透视视觉点越近的在电脑平面成像越大,越远成像越小
    • 距离视觉点越近的在电脑平面成像越大,越远成像越小
    • 透视的单位是像素

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

    • d:就是视距,视距就是一个距离人的眼睛到屏幕的距离
    • z:就是Z轴,物体距离屏幕的距离,Z轴越大(正值)我们看到的物体就越大

3D旋转rotate3d(x,y,z)

  • 3D旋转指可以让元素在三维平面内沿着x轴,y轴,z轴或者自定义轴进行旋转

  • 语法

    • transform:rotateX(45deg)沿着X轴正方向旋转45deg(度)
    • transform:rotateY(45deg)沿着Y轴正方向旋转45deg(度)
    • transform:rotateZ(45deg)沿着Z轴正方向旋转45deg(度)
    • transform:rotate3d(x,y,z,deg)沿着自定义轴旋转deg为角度(了解即可)
      • xyz是表示旋转轴的矢量,是标示你是否希望沿着该轴旋转,最后一个标示旋转的角度
      • transform:rotate3d(1,0,0,45deg)就是沿着X轴旋转45deg
      • transform:rotate3d(1,1,0,45deg)就是沿着对角线旋转45deg

左手准则

  • 对于元素的旋转的方向的判断我们需要学习一个左手准则

    • 左手的手拇指指向X轴的正方向
    • 其余手指的弯曲方向就是该元素沿着X轴旋转的方向

    • 左手的手拇指指向Y轴的正方向
    • 其余手指的弯曲方向就是该元素沿着Y轴旋转的方向

3D呈现transfrom-style

  • 控制子元素是否开启三维立体环境

    • transfrom-style:flat子元素不开启3d立体空间,默认的
    • transfrom-style:preserve-3d子元素开启立体空间
  • 代码写给父级,但是影响的是子盒子

  • 这个属性很重要

posted @ 2020-03-10 20:15  懒惰ing  阅读(271)  评论(0)    收藏  举报