今天萌发一个想法,用css来实现透视效果。起初,我想到的是我们常见的添加阴影效果的方法,用多个div通过偏移来实现,但这需要很多 div,不够理想。随后,我想到css的一个属性:border,在border相连接处可以产生对角线效果。这样用两个div就可以实现,我们先看看最终效果,然后再分析实现过程。
首先,我们看看border如何生成的对角线效果,在你的html的头部增加以下代码,你就会看到这样的效果。
1..border{width:0;height:0;border-width:50px;border-color:#f00#0f0#00f#000;border-style:solid;}有了上面的基础,我们就可以用两个额外的div来实现透视效果。
一、html代码如下:
1.<divclass="perspective-outer"> 2. <divclass="perspective-r"></div> 3. <divclass="perspective-b"></div> 4. <divclass="perspective-inner">透视效果元素</div> 5.</div>二、Css代码:
01..perspective-outer{ 02. position:relative; 03. width:170px;/*要实现透视效果元素的宽度+透视距离*/04. height:140px;/*要实现透视效果元素的高度+透视距离*/05.} 06..perspective-inner{ 07. border:1pxsolid#f60; 08. height:118px; 09. width:148px; 10. background-color:#fff; 11.} 12..perspective-r, 13..perspective-b{ 14. position:absolute; 15. width:0; 16. height:0; 17.} 18..perspective-r{ 19. right:0; 20. height:100px;/*要实现透视效果元素的高度(120px) - (border-top:20px)*/21. border-left:20pxsolid#000;/*右边透视距离*/22. border-top:20pxsolid#fff;/*下边透视距离*/23.} 24..perspective-b{ 25. bottom:0; 26. width:150px;/*最外元素的宽度(170px) - border-left*/27. border-left:20pxsolid#fff; 28. border-top:20pxsolid#000; 29.}.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,所以为白色。
三、后记
本文只是做一个简单得测试,其目的在于抛砖引玉。这种方法其实用性究竟有多大,咱姑且不论,但至少可以给我们一种解决问题的思路。希望此文能对你有所帮助。九鼎设计
- 相关信息
- CSS教程:编写CSS代码时样式命名的规则 09-09-17
- 实现透视效果用css来实现 09-09-17
- CSS教程:“自动定位”的应用 09-09-17
- 条件CSS基本使用方法 09-09-17
- 最新信息
- 谷歌承认封杀电话服务 只因色情和过高话费 09-10-10
- 经济型酒店何以快速回暖 09-10-10
- 曼秀雷敦 09-10-10
- 广州亚运会 09-10-10