transform的坐标是需要了解的特性。

我们的rotateX,rotateY,rotateZ,和translateX,translateY等都是基于相同的坐标系来定位的。

3D的坐标如下入所示:

3D transform中有下面这三个方法:

  • rotateX( angle )
  • rotateY( angle )
  • rotateZ( angle )

理解了这三个方法,后面更难懂的perspective就好下手了,可以说是突破口!

rotate旋转的意思,rotateX旋转X轴,rotateY旋转Y轴,rotateZ旋转Z轴,其中:

它们使用angle值作为参数。如果是正角度,元素顺时针旋转。如果是负角度,元素逆时针旋转。

2. 必不可少的perspective属性

   perspective属性的存在与否决定了你所看到的是2次元的还是3次元的,也就是是2D transform还是3D transform.

我们看demo1:

<!DOCTYPE html>
<html>
<head>
<style>
#div1{position: relative;height: 150px;width: 150px;margin: 50px;padding:10px;border: 1px solid black;/*perspective:150;-webkit-perspective:150; /* Safari and Chrome */*/
}
#div2 {padding:50px;position: absolute;border: 1px solid black;background-color: yellow;transform: rotateX(45deg);-webkit-transform: rotateX(45deg); /* Safari and Chrome */
}
</style>
</head>
<body>
<div id="div1"><div id="div2">HELLO</div>
</div>
</body>
</html>

是否添加perspective属性,显示的样式分别如下:

    &&

我们要知道:

CSS3 3D transform的透视点是在浏览器的前方

或者这么理解吧:显示器中3D效果元素的透视点在显示器的上方(不是后面),近似就是我们眼睛所在方位!

比如:

一个1680像素宽的显示器中有张美女图片,应用了3D transform,同时,该元素或该元素父辈元素设置的perspective大小为2000像素。

则这张美女多呈现的3D效果就跟你本人在1.2个显示器宽度的地方(1680*1.2≈2000)看到的真实效果一致!!

  perspective属性有两种书写形式,一种用在舞台元素上(动画元素们的共同父辈元素);第二种就是用在当前动画元素上,与transform的其他属性写在一起。如下代码示例:

demo2如下:

 .container {display: block;width: 200px;height: 200px;margin-bottom: 50px;border: 1px solid #bbb;
}
.box {width: 100%;height: 100%;opacity: .75;
}#darkred .box {background-color: darkred;transform: perspective(600px) rotateY(45deg);
}#darkblue {perspective: 600px;
}
#darkblue .box {background-color: darkblue;transform: rotateY(45deg);
}
</style>
</head>
<body><section id="darkred" class="container"><div class="box"></div></section><section id="darkblue" class="container"><div class="box"></div></section>
</body>

效果图如下:

这两种写法的效果存在很大的区别:

上面舞台整个作为透视元素,因此,显然,我们看到的每个子元素的形体都是不一样的;

而下面,每个元素都有一个自己的视点,因此,显然,因为rotateY的角度是一样的,因此,看上去的效果也就一模一样了!

perspective-origin

  perspective-origin这个属性超级好理解,表示你那双色迷迷的眼睛看的位置。默认就是所看舞台或元素的中心。

transform-style: preserve-3d

transform-style属性也是3D效果中经常使用的,其两个参数,flat|preserve-3d.

前者flat为默认值,表示平面的;后者preserve-3d表示3D透视。

基本上,我们想要根据现实经验实现一些3D效果的时候,transform-style: preserve-3d是少不了的。

一般而言,该声明应用在3D变换的兄弟元素们的父元素上,也就是舞台元素。

转载于:https://www.cnblogs.com/xuzhudong/p/7910973.html

CSS3 3D transform变换相关推荐

  1. 好吧,CSS3 3D transform变换,不过如此!

    by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wordpress/?p=2592 一.写在前面 ...

  2. CSS3 3D transform变换,不过如此

    (这篇关于css 3d的文章算是开启了我的css3d概念了,确实写的很容易理解,小编苦苦寻找的经典好文) 一.写在前面的秋裤 早在去年的去年,我就大肆介绍了2D transform相关内容.看过海贼王 ...

  3. 详解如何用 CSS3 完成 3D transform变换

    Tips:阅读提示!!! 首先,本文针对的是3D transform变换的学习,所以你需要对 2D transform变换 有一定的了解 其次,需要说明的是,代码是一种需要自己不断实践的学科,建议各位 ...

  4. CSS3 3D transform

    目录 一.transform简介 1.定义和用法 2.浏览器支持 3.语法 二. 学习步骤 1. 前情提要 2. 什么是3D transform变换 3. 关键点:rotateX, rotateY, ...

  5. html5实现3d翻页效果,利用css3 3d transform制作超逼真翻书效果

    本教程给大家带来一个非常有创意的翻书效果,使用的是css 3D transforms属性和css transitions属性.这里将给你展示两种不同的图书设计:精装书和平装书.这两种设计只需要简单的改 ...

  6. 深入理解css3 3d变换

    转载地址:https://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/ ...

  7. css 3d transform

    原文:大神传送门 一.写在前面的秋裤 早在去年的去年,我就大肆介绍了2D transform相关内容.看过海贼王的都知道,带D的家伙都不是好惹的,2D我辈尚可以应付,3D的话,呵呵,估计我等早就在千里 ...

  8. CSS3:3D变换动画

    CSS3:3D变换动画 2D状态下,给元素设置沿着X轴旋转45deg <!DOCTYPE html> <html lang="en"><head> ...

  9. html图片旋转换图片,5. CSS3 transform变换、翻转图片示例

    仅供学习,转载请注明出处 CSS3 transform变换 1.translate(x,y) 设置盒子位移 2.scale(x,y) 设置盒子缩放 3.rotate(deg) 设置盒子旋转 4.ske ...

最新文章

  1. 【Google Play】应用 “更新被拒“ 后续处理 ( 上传新版本后 , 一定要停用被拒的版本, 才可以通过审核 | 停用被拒的版本 | 送审 )
  2. 函数不可访问_C++之访问控制与继承
  3. table row设置cell的html,css中display设置为table、table-row、table-cell后的作用及其注意点...
  4. 界面设计方法(2)— 5.功能按钮设计(新增,查询)
  5. 招聘APP如何搭建信用体系以避免求职者被骗
  6. visualmap超过范围改变颜色_高动态范围(High-Dynamic Range,简称HDR)
  7. BZOJ 3685 普通van Emde Boas树 权值线段树(zkw)
  8. 本地项目部署到服务器 启动 报错 数据表不存原因 解决
  9. 解决办法:dpkg: 错误: 无法打开软件包的 info 文件 /var/lib/dpkg/available 以便读取: 没有那个文件或目录
  10. 能打开2D、3D图文件的小工具abviewer
  11. python 知乎 合并 pdf_如何用Python程序将几十个PDF文件合并成一个PDF?其实只要这四步...
  12. 读书笔记_006 《查令十字街84号》
  13. 删除OneDrive for Bussiness导航栏快捷方式
  14. js获取当天0时刻,23点59分59秒的时间戳
  15. C语言无符号与有符号之间的比较
  16. 将自动化测试推向极限
  17. centos7配置tomcat环境变量
  18. 【51单片机】矩阵按键实现数码管显示
  19. 2019年的夏天,和CDEC生态大会在成都耍一哈儿
  20. java连接本地数据库命令_Java操作数据库时一次连接只能执行一条SQL命令

热门文章

  1. desktop docker 无法卸载_关于Docker:Docker – 无法移除死容器
  2. qq传输文件的软件测试点,超强新功能 QQ传文件夹测试版抢先试用
  3. 微型计算机硬件性能取决于什么,微型计算机硬件系统的性能主要取决于
  4. 键盘与鼠标器是微型计算机上最常用的,2016年职称计算机考试WindowsXP考前预测试题5...
  5. linux从别的主机下载,从局域网内的其他Linux主机下载文件
  6. rpm包安装mysql配置文件目录_CentOS6.5系统下RPM包安装MySQL5.6
  7. Altium Designer20新建项目\导入库\绘制原理图\导入pcb\绘制pcb
  8. (二叉树存储+递归遍历)Binary Tree Traversals
  9. 接口应用:内部比较器Comparable
  10. 计算机硬件组成 pdf,计算机硬件的组成..pdf