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

CSS样式表
css 块状元素和内联元素
CSS 盒模型、块状元素与内联元素、CSS选择器
css 浮动 理解Float的含义
CSS 清除浮动Clear
CSS 制作网页导航条(上)
CSS 制作网页导航条(下)
css 浮动(float)页面布局
css 浮动(float)页面布局(下)
css position 定位
css 定位应用实例
CSS Hack 有关浏览器兼容方面
css 单图片按钮实例(css 图片变换)
使用X-UA-Compatible来设置IE浏览器兼容模式
div overflow 超出隐藏属性使用说明
CSS 使用规则总结
div+CSS 兼容小摘
CSS的inherit与auto使用分析
如何组织和注释CSS文件
CSS样式按整洁易懂的结构组织
CSS Prism 查看和编辑CSS中用到的颜色

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 42 ::
收藏到网摘: 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,所以为白色。

三、后记

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