25 CSS3中的3D转换

技术交流QQ群:1027579432,欢迎你的加入!

欢迎关注我的微信公众号:CurryCoder的程序人生

1.现实中的3D有什么特点?

  • 近大远小
  • 物体后面遮挡不可见

2.三维坐标系

  • 三维坐标系其实就是指立体空间,立体空间是由3个轴共同组成的。
    • x轴:水平向右。注意:x右边是正值,左边是负值
    • y轴:垂直向下。注意:y下面是正值,上面是负值
    • z轴:垂直屏幕。注意:向外是正值,向内是负值
      3D坐标系.png

3.3D转换主要学习内容

  • 3D转换主要学习工作中最常用的3D位移和3D旋转。主要知识点有:
    • 3D位移:translate3d(x, y, z);
    • 3D旋转:rotate3d(x, y, z);
    • 透视:perspective;
    • 3D呈现transform-style;
3.1 3D转换之移动translate3d
  • 3D移动在2D移动的基础上多增加了一个可以移动的方向,就是z轴方向。
    • transform: translateX(100px); 仅仅是在x轴上进行移动;
    • transform: translateY(100px); 仅仅是在y轴上进行移动;
    • transform: translateZ(100px); 仅仅是在z轴上进行移动,translateZ一般用px为单位
    • transform: translate3d(x, y, z); 其中x、y、z分别指的是移动轴方向上的距离。
3.2 3D转换之透视perspective[重点]
  • 在2D平面上产生近大远小视觉立体,但是那仅仅效果是二维的。
    • 如果想要在网页上产生3D效果,则需要透视(理解为3D物体投影在2D平面内);
    • 模拟人类的视觉位置,可认为安排一只眼睛去看;
    • 透视我们也称为视距:视距就是人的眼睛到屏幕的距离
    • 距离视觉点越近的电脑平面成像越大,越远成像越小;
    • 透视的单位是像素px;


      3D透视原理.png
  • 透视写在被观察元素的父级盒子上,d就是视距,视距是一个距离,即人的眼睛到屏幕的距离。
3.3 translateZ
  • translateZ(100px):仅仅是在Z轴上进行移动。有了透视以后,就能看到translateZ引起的变化了。
  • z:指的是z轴,物体到屏幕的距离,z轴越大(正值),我们看到的物体就越大
3.4 3D转换之rotate3d旋转
  • 3D旋转指的是可以让元素在三维平面中沿着x轴、y轴、z轴或者自定义轴进行旋转。
  • 语法:
    • transform: rotateX(45deg); 沿着x轴正方向旋转45度;
    • transform: rotateY(45deg); 沿着y轴正方向旋转45度;
    • transform: rotateZ(45deg); 沿着z轴正方向旋转45度;
    • transform: rotate3d(x, y, z, 45deg); 沿着自定义轴旋转deg度;


      rotateX和rotateY和rotateZ.png
  • 对于元素旋转的方向判断:需要先学习一个左右准则
  • rotateX左手准则
    • 左手的大拇指所指向的方向就是x轴的正方向;
    • 其余手指的弯曲方向就是该元素沿着x轴旋转的正方向;


      rotateX左手准则.png
  • rotateY左手准则
    • 左手的大拇指所指向的方向就是y轴的正方向;
    • 其余手指的弯曲方向就是该元素沿着y轴旋转的正方向;


      rotateY左手准则.png
3.5 3D转换之transform-style呈现
3D转换之transform-style呈现实际效果.png
  • 控制子元素是否开启三维立体空间
  • transform-style: flat 子元素不开启3D立体空间,默认的;
  • transform-style: preserve-3d; 子元素开启3D立体空间
  • 代码写在父级盒子上,但是影响的却是子盒子
  • 这个属性很重要,后面必用!

4.浏览器的私有前缀

  • 浏览器的私有前缀是为了兼容老版本的写法,比较新版本的浏览器无须添加。
  • 私有前缀
    • -moz-:代表firefox浏览器私有属性;
    • -ms-:代表ie浏览器私有属性;
    • -webkit-:代表safari、chrome浏览器私有属性;
    • -o-:代表Opera私有属性;
  • 提倡写法
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;
    -o-border-radius: 10px;
    border-radius: 10px;
    

5.资料下载

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天天气好晴朗处处好风光伴随着好天气的到来心情都更加明朗了呢是不是该学点烧脑的内容了呢傻球也要出来晒晒太阳咯~ C...
    Iris_mao阅读 640评论 0 2
  • 在介绍有关transform相关的知识之前,先来讲一下transform-origin的用法以及关于角度的几种取值...
    跪键盘的小泰迪阅读 1,300评论 0 2
  • 看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印象,因...
    DCbryant阅读 1,896评论 0 4
  • 1、基本概念 基本概念:transform 属性向元素应用 2D 或 3D 转换;该属性允许我们对元素进行旋转、缩...
    前白阅读 1,274评论 0 1
  • 一、 认识 3D 转换 3D 的特点近大远小物体和面遮挡不可见 三维坐标系x 轴:水平向右 -- 注意:x 轴右...
    王玉伟的伟阅读 346评论 0 0