如何理解 css3 的 perspective 属性

一、写在前面的话

最近想多了解一下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 属性,布布扣,bubuko.com

时间: 2024-10-10 21:34:47

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

理解CSS3 transform中的Matrix(矩阵)

一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵)”的时候,难免会心生畏惧(即使你已经学过),正常心理.实际上,这玩意确实有点复杂. 然而,这却是屌丝逆袭的一个好机会. CSS同行间:你是不是有这样的感觉:哎呀呀,每天就是对着设计图切页面,貌似技术没有得到实质性地提升啊,或者觉得日后高度有限! 我们应该都知道二八法则(巴莱多定律),即任何一组东西中

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

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=2427 一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如“拉普拉斯不等式”).这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面“Matrix(矩阵)”的时候,难免会心生畏惧(即使你已经学过),正常心理.实际上,这玩意确实有点复杂. 然而,这却是屌丝逆袭的一个好机

理解CSS3属性transition

一.说明 1.1 定义和用法 transition 属性是一个简写属性,用于设置四个过渡属性: transition-property:规定设置过渡效果的CSS属性的名称. transition-duration:规定完成过渡效果需要多少秒或毫秒. transition-timing-function:规定速度效果的速度曲线. transition-delay:定义过渡效果何时开始. 1.2 语法 transition: property duration timing-function del

CSS3 Transform的perspective属性

以下两行语句有什么区别? Css <div id="animateTest" style="-webkit-transform: perspective(400px) rotateY(40deg);"> Css <div id="animateTest" style="-webkit-transform: rotateY(40deg) perspective(400px);"> 如果大家不清楚,请听我娓

CSS3教程:Transform的perspective属性设置

1 2   <div id="animateTest" style="-webkit-transform: perspective(400px) rotateY(40deg);"> Css 1 2 <div id="animateTest" style="-webkit-transform: rotateY(40deg) perspective(400px);"> 如果大家不清楚,请听我娓娓道来. CC

css3 的box-sizing属性理解

* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } 有时候在某些项目中会发现这些css.box-sizing究竟有什么用还得重头说起... 我们一般计算一个块状元素的宽度的时候会将左右padding,左右border宽度,margin 都算进去,如下图所示(浏览器默认计算方式),宽度不是100px,而是160px: style="width:100px;padding

CSS3: perspective 3D属性

本文引自:http://blog.csdn.net/cddcj/article/details/52956540 perspective 属性指定了观察者与z=0平面的距离,使具有三维位置变换的元素产生透视效果.z>0的三维元素比正常大,而z<0时则比正常小,大小程度由该属性的值决定. 三维元素在观察者后面的部分不会绘制出来,即z轴坐标值大于perspective属性值的部分. 默认情况下,消失点位于元素的中心,但是可以通过设置perspective-origin属性来改变其位置. 属性值为0

css3的部分属性

1.阴影box-shadow:x轴偏移量 y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式] 注意:inset(内阴影) 可以写在参数的第一个或最后一个,其它位置是无效的实例 正值表示在对象的底部,负值表示在对象的顶部. .boxshadow-outset{ width:100px; height:100px; box-shadow:4px 4px 6px blue,4px 4px 6px red inset; } .boxshadow-inset{ width:100p

Transform-style和Perspective属性

transform-style属性 transform-style属性是3D空间一个重要属性,指定嵌套元素如何在3D空间中呈现.他主要有两个属性值:flat和preserve-3d. transform-style属性的使用语法非常简单: transform-style: flat | preserve-3d 其中flat值为默认值,表示所有子元素在2D平面呈现.preserve-3d表示所有子元素在3D空间中呈现. 也就是说,如果对一个元素设置了transform-style的值为flat,则