您现在的位置是:网站首页> 编程资料编程资料

详解CSS3的perspective属性设置3D变换距离的方法CSS文本超出指定宽度后隐藏并显示为省略号的实现方法CSS3 checkbox复选框特效源码 12种css3实现的模拟3D行星运转效果源码CSS的writing-mode文字排版属性使用教程CSS3中的Media Queries学习笔记CSS3中设置3D变形的transform-style属性详解css 元素选择器的简单实例css布局小技巧分享(必看)

2021-09-05 2306人已围观

简介 perspective属性及相关的perspective-origin属性都是用来控制3D图形空间中坐标轴上的距离的,下面我们就来详解CSS3的perspective属性设置3D变换距离的方法,当然后面也会讲到perspective-origin的用法:

perspective属性对于3D变形来说至关重要。该属性会设置查看者的位置,并将可视内容映射到一个视锥上,继而投到一个2D视平面上。如果不指定透视,则Z轴空间中的所有点将平铺到同一个2D视平面中,并且变换结果中将不存在景深概念。

上面的描述可能让人难以理解一些,其实对于perspective属性,我们可以简单的理解为视距,用来设置用户和元素3D空间Z平面之间的距离。而其效应由他的值来决定,值越小,用户与3D空间Z平面距离越近,视觉效果更令人印象深刻;反之,值越大,用户与3D空间Z平面距离越远,视觉效果就很小。

在3D变形中,对于某些变形,例如下面的示例演示的沿Z轴的变形,perspective属性对于查看变形的效果来说必不可少。

我们先来看一个简单的实例,制作一个扑克牌3D旋转效果,并且一个在扑克牌的父元素添加了视距perspective,而另一个却没有设置:

HTML

XML/HTML Code复制内容到剪贴板
  1. <div>  
  2.     <img src="images/cardKingClub.png" alt="" width="142" height="200" />  
  3.     <img src="images/cardKingClub.png" alt="" width="142" height="200" />  
  4. div>  
  5. <div>  
  6.     <img src="images/cardKingClub.png" alt="" width="142" height="200" />  
  7.     <img src="images/cardKingClub.png" alt="" width="142" height="200" />  
  8. div>  

CSS

CSS Code复制内容到剪贴板
  1. div {   
  2.     width500px;   
  3.     height300px;   
  4.     margin30px auto;   
  5.     positionrelative;   
  6.     backgroundurl(images/bg-grid.jpg) no-repeat center center;   
  7.     background-size: 100% 100%;   
  8. }   
  9. div img {   
  10.     positionabsolute;   
  11.     top: 50%;   
  12.     left: 50%;   
  13.     margin-left: -71px;   
  14.     margin-top: -100px;    
  15.     transform-origin: bottombottom;   
  16. }   
  17. div img:nth-child(1){   
  18.     opacity: .5;   
  19.     z-index: 1;   
  20. }   
  21. div img:nth-child(2){   
  22.     z-index: 2;   
  23.     transform: rotateX(45deg);   
  24. }   
  25. div:nth-of-type(2){   
  26.     perspective: 500px;   
  27. }  

其效果如下:
2016523113015422.png (389×493)

上图的效果完全说明了一切。父节点没有设置perspective的情况下,梅花King的3D旋转效果不明显,而在父节点设置perspective后,梅花King才像个3D旋转。

上例简单的演示了perspective的使用方法,我们回过头来,看看perspective的使用语法:

CSS Code复制内容到剪贴板
  1. perspective:none |   

perspective属性包括两个属性:none和具有单位的长度值。其中perspective属性的默认值为none,表示无限的角度来看3D物体,但看上去是平的。另一个值接受一个长度单位大于0的值。而且其单位不能为百分比值。值越大,角度出现的越远,从而创建一个相当低的强度和非常小的3D空间变化。反之,此值越小,角度出现的越近,从而创建一个高强度的角度和一个大型3D变化。

比如你站在10英尺和1000英尺的地方看一个10英尺的立方体。在10英尺的地方,你距离立方体是一样的尺寸。因此视角转变远远大于站在1000英尺处的,立体尺寸是你距离立方体距离的百分之一。同样的思维适用于perspective的值。我们一起来看一个实例,来加强这方面的理解:

HTML

XML/HTML Code复制内容到剪贴板
  1. <div class="wrapper w2">  
  2.     <div class="cube">  
  3.         <div class="side  front">1div>  
  4.         <div class="side   back">6div>  
  5.         <div class="side  right">4div>  
  6.         <div class="side   left">3div>  
  7.         <div class="side    top">5div>  
  8.         <div class="side bottom">2div>  
  9.     div>  
  10. div>  
  11. <div class="wrapper w1">  
  12.     <div class="cube">  
  13.         <div class="side  front">1div>  
  14.         <div class="side   back">6div>  
  15.         <div class="side  right">4div>  
  16.         <div class="side   left">3div>  
  17.         <div class="side    top">5div>  
  18.         <div class="side bottom">2div>  
  19.     div>  
  20. div>  

CSS

CSS Code复制内容到剪贴板
  1. .wrapper {   
  2.     width: 50%;   
  3.     floatleft;   
  4. }   
  5. .cube {   
  6.  &

相关内容

-六神源码网