一、写在前面的话

最近想多了解一下CSS3的transform 3D效果,transform:英文直译就是转换,它可以实现旋转、缩放、位移等效果,听起来有没有觉得很酷的样子,狠狠的点这里来看看旋转和位移的效果

你应该会看到这样的效果:

纳尼?这是3D?怎么一点也不酷呢?

二、让3D效果显示出来

看不到3D效果,那是因为我们没有加上 prespective 属性,我们在外层DIV上加上 prespective: 50; ,再狠狠的点这里来看看旋转和位移的效果

你应该会看到这样的效果:

是不是有那么点酷了,但你知道 prespective: 50; 是怎么起作用的么?我们来一探究竟。

三、先来感性的理解3D

当我在网上找到下面这张图的时候,顿时心里咯噔一下,千言万语不如一张图说的明白啊,那个网状的平面你可以理解为我们的显示器,这样一个立体的概念是不是就在脑子里开始有了呢?

如果还没概念,我们以旋转为例来继续说明

rotateX就像单杠

rotateY就像钢管舞

rotateZ就像旋转的风扇

四、如何理解prespective

终于说到本文的核心了,prespective属性有两个作用,一是开关,通过它来打开和关闭3D透视效果,二是设置透视的距离。

设置 prespective:none; 是关闭透视效果,设置 prespective:50; 是打开透视效果并设置透视的距离是50像素,你可以理解为在显示器前50像素的距离看到的透视效果,而对于什么是透视效果,可以看这张图:

人眼对物体的视觉效果呈现的是近大远小的特点,perspective属性展现的就是这种效果。

回到之前的DEMO,右边有背景的DIV跟虚线边框的DIV其实是一样大小,只是右边有背景的DIV的Z轴向前移动了20像素,在透视效果下就显示比虚线边框的DIV面积要大些。

五、2种方式设置perspective

除了之前说到的在父元素上设置 prespective:50; 外,还有一种方式是通过 transform在子元素上设置,如:transform: perspective(50px) rotate(45deg); ,这2种方式设置的效果是不一样的。

  • prespective:50; 是以当前父元素的转换位置为视点看到的透视效果;
  • transform: perspective(50px) rotate(45deg); 是以当前子元素的转换位置为视点看到的透视效果;

    PS:请注意两种方式的值写法,一个不要单位,一个要单位。

狠狠的点这里来看看效果

说了这么多,不知道各位对perspective 是否完全理解了呢,欢迎探讨?

文章来源:http://www.gafish.net/archives/1540

如何理解 css3 的 perspective 属性的更多相关文章

  1. 半深入理解CSS3 object-position/object-fit属性

    半深入理解CSS3 object-position/object-fit属性 转载:https://www.zhangxinxu.com/wordpress/2015/03/css3-object-p ...

  2. css3 tranform perspective属性

    perspective 属性用于规定观察点距离元素的距离, 1 观察点距离元素越近,元素变形就越大,灭点距离越近. 2 观察点距离元素越远,元素变形越小,灭点距离也就越远. 比如设置perspecti ...

  3. 图形解析理解 css3 之倾斜属性skew()

    1.作用 改变元素在页面中的形状2.语法 属性:transform 函数: 1.skew(xdeg) 向横向倾斜指定度数 x取值为正,X轴不动,y轴逆时针倾斜一定角度 x取值为负,X轴不动,y轴顺时针 ...

  4. 【CSS3】 理解CSS3 transform中的Matrix(矩阵)

    理解CSS3 transform中的Matrix(矩阵) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu ...

  5. 理解CSS3 transform中的Matrix(矩阵)

    一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵) ...

  6. 理解CSS3 transform中的Matrix(矩阵)——张鑫旭

    by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你 ...

  7. CSS3教程:Transform的perspective属性设置

    1 2   <div id="animateTest" style="-webkit-transform: perspective(400px) rotateY(4 ...

  8. CSS3 Transform的perspective属性

    以下两行语句有什么区别? Css <div id="animateTest" style="-webkit-transform: perspective(400px ...

  9. 理解CSS3属性transition

    一.说明 1.1 定义和用法 transition 属性是一个简写属性,用于设置四个过渡属性: transition-property:规定设置过渡效果的CSS属性的名称. transition-du ...

随机推荐

  1. pl/sql执行动态sql

    SQL> declare             msql varchar2(200);    begin    loop    msql := 'select * from bfw_test' ...

  2. CentOS 6.5配置nfs服务

    CentOS 6.5配置nfs服务 网络文件系统(Network File System,NFS),一种使用于分散式文件系统的协议,由升阳公司开发,于1984年向外公布.功能是通过网络让不同的机器.不 ...

  3. 【转】ubuntu下解压缩zip,tar,tar.gz和tar.bz2文件

    原文网址:http://blog.sina.com.cn/s/blog_5da93c8f0101h1uj.html 在Linux下面如何去压缩文件或者目录呢? 在这里我们将学习zip, tar, ta ...

  4. c++ 10

    一.二叉树 1.基本特征 1)树型结构的最简模型,每个节点最多有两个子节点--左子节点和右子节点. 2)单根性,每个子节点有且仅有一个父节点,整棵树有且仅有一个根节点. 3)递归性,以任何一个节点为根 ...

  5. Java迭代器深入理解及使用

    Iterator(迭代器) 作为一种设计模式,迭代器可以用于遍历一个对象,对于这个对象的底层结构开发人员不必去了解. java中的Iterator一般称为“轻量级”对象,创建它的代价是比较小的.这里笔 ...

  6. Linux 程序设计的一些优化措施

    Linux 程序设计的一些优化措施 这些知识是在平常的阅读中,零散的获得的,自己总结了一下,分享在这里 全局变量VS函数参数 全局变量在Linux下的驱动编程里边,用的是非常多,例如中断服务函数ISR ...

  7. 图的最小生成树(Prim、Kruskal)

    理论: Prim: 基本思想:假设G=(V,E)是连通的,TE是G上最小生成树中边的集合.算法从U={u0}(u0∈V).TE={}开始.重复执行下列操作: 在所有u∈U,v∈V-U的边(u,v)∈E ...

  8. Android学习总结——判断网络状态

    package com.example.xch.broadcasttest; import android.content.BroadcastReceiver; import android.cont ...

  9. Hibernaate事务管理

    Hibernate使用session时需要继承HibernateDaoSupport对象 HibernateDaoSupport对象中包含默认的getSession()方法,但不可以通过该方法直接启动 ...

  10. [置顶] 【cocos2d-x入门实战】微信飞机大战之十二:分数的本地存储

    转载请表明地址:http://blog.csdn.net/jackystudio/article/details/12036237 作为一个单机游戏,连分数存储的的功能都没有,让它怎么在单机游戏圈里混 ...