当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > 实现透视效果用css来实现

CSS样式表
CSS网页设计实例:15个用CSS设计的网页表单实例
让IE可以变相支持CSS3选择器
CSS3制作的精彩的网页实例教程
5个实例让你轻松了解CSS3新属性
CSS教程:详解CSS特定值
网页制作中的水平居中和垂直居中解决方案
CSS教程:CSS属性behavior的语法
网页制作实例:用CSS样式描述表格Table边框
CSS Hack兼容各浏览器是否正常
应聘网页设计师常见的8个面试试题和答案
5个帮助你实现未来的网页设计的CSS3技巧
CSS教程:纯CSS实现的圆角化图片
CSS命名规范和CSS书写规范及方法
CSS教程:expression在Chrome的问题
CSS教程:CSS变换(transition)
float闭合(清除浮动)和CSS HACK
letter-spacing和word-spacing
CSS基础语法:群组化选择符
黑客选择CSS代码挂马 CSS挂马攻防实录
CSS3制作网页下拉菜单代码解释

CSS样式表 中的 实现透视效果用css来实现


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 39 ::
收藏到网摘: n/a

今天萌发一个想法,用css来实现透视效果。起初,我想到的是我们常见的添加阴影效果的方法,用多个div通过偏移来实现,但这需要很多 div,不够理想。随后,我想到css的一个属性:border,在border相连接处可以产生对角线效果。这样用两个div就可以实现,我们先看看最终效果,然后再分析实现过程。

首先,我们看看border如何生成的对角线效果,在你的html的头部增加以下代码,你就会看到这样的效果

view sourceprint?
1..border{width:0;height:0;border-width:50px;border-color:#f00 #0f0 #00f #000;border-style:solid;}

有了上面的基础,我们就可以用两个额外的div来实现透视效果。

一、html代码如下:

view sourceprint?
1.<div class="perspective-outer">
2.    <div class="perspective-r"></div>
3.    <div class="perspective-b"></div>
4.    <div class="perspective-inner">透视效果元素</div>
5.</div>

二、Css代码:

view sourceprint?
01..perspective-outer{
02.    position:relative;
03.    width:170px;/*要实现透视效果元素的宽度+透视距离*/
04.    height:140px;/*要实现透视效果元素的高度+透视距离*/
05.}
06..perspective-inner{
07.    border:1px solid #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:20px solid #000;/*右边透视距离*/
22.    border-top:20px solid #fff;/*下边透视距离*/
23.}
24..perspective-b{
25.    bottom:0;
26.    width:150px;/*最外元素的宽度(170px) - border-left*/
27.    border-left:20px solid #fff;
28.    border-top:20px solid #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,所以为白色。

三、后记

本文只是做一个简单得测试,其目的在于抛砖引玉。这种方法其实用性究竟有多大,咱姑且不论,但至少可以给我们一种解决问题的思路。希望此文能对你有所帮助。