用css来实现透视效果

所属分类: 网页制作 / CSS 阅读数: 1252
收藏 0 赞 0 分享

今天萌发一个想法,用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;

更多精彩内容其他人还在看

动态的样式语言less语法详解之变量与extend

本质上,LESS 包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则最终会通过解析器,编译生成对应的 CSS 文件。LESS 并没有裁剪 CSS 原有的特性,更不是用来取代 CSS 的,而是在现有 CSS 语法的基础上,为 CSS 加入程序式语言的特性
收藏 0 赞 0 分享

动态的样式语言less语法详解之混合属性

这篇文章主要介绍了动态的样式语言less语法详解之混合属性,需要的朋友可以参考下
收藏 0 赞 0 分享

浏览器端如何使用Less

这篇文章主要介绍了浏览器端如何使用Less,需要的朋友可以参考下
收藏 0 赞 0 分享

CSS3动画效果回调处理详解

这篇文章主要详细介绍了CSS3动画效果回调处理,需要的朋友可以参考下
收藏 0 赞 0 分享

纯css3实现的竖形无限级导航

本文给大家介绍了一款非常漂亮的纯CSS3打造的竖形无限级导航特效,小伙伴们需要的话直接拿走使用吧
收藏 0 赞 0 分享

一款纯css3实现的tab选项卡的实列教程

css3怎么做tab选项卡?下面费大家分享一款纯css3实现的tab选项卡的实列教程,单击左侧的选项的时候,右侧内容以动画的形式展示。下文有具体代码,想学的朋友可以进来参考一下
收藏 0 赞 0 分享

一款利用纯css3实现的win8加载动画的实例分析

之前已经和大家分享了很多css3动画的实例教程,今天给大家分享一款纯css3实现的win8加载动画。在这款实例中动画效果完全由css3实现,需要的朋友可以参考下
收藏 0 赞 0 分享

一款纯css3实现的竖形二级导航的实例教程

这篇文章主要为大家介绍了一款纯css3实现的竖形二级导航的实例教程,这款导航菜单特色是可以是无限级。下面有代码,不会的朋友可以过来借鉴学习哦
收藏 0 赞 0 分享

padding ie 不兼容问题

这篇文章主要介绍了padding ie 不兼容问题,需要的朋友可以参考下
收藏 0 赞 0 分享

CSS3简单实现照片墙

本文给大家推荐的是使用CSS3简单实现照片墙效果的代码,非常简单,也很实用,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多