作家
登录
    用户名:  密码:   

用css来实现透视效果

作者: 来源:www.28hudong.com 2012-11-19 22:29:54 阅读22次 我要评论

今天萌发一个想法,用css来实现透视效果。起初,我想到的是我们常见的添加阴影效果的方法,用多个div通过偏移来实现,但这需要很多 div,不够理想。随后,我想到css的一个属性:border,在border相连接处可以产生对角线效果。这样用两个div就可以实现,我们先看看 最终效果 ,然后再分析实现过程。 首先,我们看看border如何生成的对角线效果,在你的html的头部增加以下代码,你就会看到 这样的效果 。 .border{width:0;height:0;border-width:50px;border-color:#f00 #0f0 #00f #000;border-style:solid;} 有了上面的基础,我们就可以用两个额外的div来实现透视效果。 一、html代码如下: <div class="perspective-outer"> <div class="perspective-r"></div> <div class="perspective-b"></div> <div class="perspective-inner">透视效果元素</div></div> 二、Css代码: .perspective-outer{ position:relative; width:170px;/*要实现透视效果元素的宽度+透视距离*/ height:140px;/*要实现透视效果元素的高度+透视距离*/}.perspective-inner{ border:1px solid #f60; height:118px; width:148px; background-color:#fff;}.perspective-r,.perspective-b{ position:absolute; width:0; height:0;}.perspective-r{ right:0; height:100px;/*要实现透视效果元素的高度(120px) - (border-top:20px)*/ border-left:20px solid #000;/*右边透视距离*/ border-top:20px solid #fff;/*下边透视距离*/}.perspective-b{ bottom:0; width:150px;/*最外元素的宽度(170px) - border-left*/ border-left:20px solid #fff; border-top:20px solid #000;} .perspective-outer定义高度和宽度,并相对定位,确保右边和下边的透视区域能定位的相应的位置,高度值和宽度值为要实现透视效果元素的高度加上相应的透视距离。.perspective-r只需设置高度值,其值为.perspective-outer的高度减去border-top,.perspective-b只需设置宽度值,其值为.perspective-outer的宽度减去border-left。.perspective-r的border-top和.perspective-b的border-left的width值决定透视角度。.perspective-r的border-left和.perspective-b的border-top的width值 决定透视距离。其中.perspective-r的border-top和.perspective-b的border-left的color为父元素的背景颜色,我这里的测试页面父元素为body,所以为白色。 三、后记 本文只是做一个简单得测试,其目的在于抛砖引玉。这种方法其实用性究竟有多大,咱姑且不论,但至少可以给我们一种解决问题的思路。希望此文能对你有所帮助。 原文:http://www.denisdeng.com/?p=474;

  推荐阅读

  CSS教程 伪清除浮动

一个多月前总结了《清理浮动的全家》,当时看了之后没什么新鲜的东西也就忽略了,今天偶然又翻到那篇文章,想到了另外一个的方法(N久前在书店翻到的),在网上没看到有人提起过,写出来大家一起讨论下。 HTML: <u>>>详细阅读


本文标题:用css来实现透视效果

地址:http://www.17bianji.com/kaifa2/CSS/16706.html

4

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

22

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)