用css实现透视效果
作者:dishuipiaoxiang 来源:Denis'Blog 发布时间:2009-09-05 16:33:00
今天萌发一个想法,用css来实现透视效果。起初,我想到的是我们常见的添加阴影效果的方法,用多个div通过偏移来实现,但这需要很多 div,不够理想。随后,我想到css的一个属性:border,在border相连接处可以产生对角线效果。这样用两个div就可以实现,我们先看看 最终效果:css-perspective-1.html ,然后再分析实现过程。
首先,我们看看border如何生成的对角线效果,在你的html的头部增加以下代码,你就会看到 这样的效果css-perspective.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,所以为白色。
三、后记
本文只是做一个简单得测试,其目的在于抛砖引玉。这种方法其实用性究竟有多大,咱姑且不论,但至少可以给我们一种解决问题的思路。希望此文能对你有所帮助。


猜你喜欢
- 使用python中的pandas,xlrd,openpyxl库完成合并excel中指定sheet的操作# -*- coding: UTF-8
- 一、内容回顾Model- 数据库操作- 验证class A(MOdel):user = email = pwd =Form- class L
- 本章的前面讨论如何使用SQL向一个表中插入数据。但是,如果你需要向一个表中添加许多条记录,使用SQL语句输入数据是很不方便的。幸运的是,My
- 如下所示:a = [1,1,1,2,3,45,1,2,1]a.remove(1) result: [1,1,2,3,45,1,2,1]whi
- 本代码来源于 《Python和Pygame游戏开发指南》中的 Star Pusher 游戏,供大家参考,具体内容如下# Star Pushe
- 1.背景一直苦恼于本地机器和服务器上都要配置一些机器学习方面的环境,今天花了点时间研究了下Jupter notebook远程访问服务器,所以
- 本文实例讲述了python获取mp3文件信息的方法。分享给大家供大家参考。具体如下:将代码生成.py文件放在目录下运行,可以获取该目录的所有
- 操作系统 : Windows 10_x64 [版本 10.0.19042.685]pjsip版本 : 2.10pjsip官网:https:/
- 简介在这篇文章中我将介绍如何写一个简短(200行)的 Python 脚本,来自动地将一幅图片的脸替换为另一幅图片的脸。这个过程分四步:检测脸
- 如下图,我们在做图片logo列表的时候通常是用li标签来实现。html:<ul class="logolist&q
- 本文以实例形式介绍了python turtle模块即海龟绘图的使用方法,对于需要进行图形编程的朋友相信会有一定的借鉴价值。python tu
- 1.需求描述编写一个 Python 程序,每次下载压缩包形式的文件后,自动将内部文件解压到当前文件夹后将压缩包删除,通过本案例可以学到的知识
- 场景一、有一个输入金额的场景,这个金额需要验证,验证说明如下:不能为空格;不能为0;不能为汉字;不能为其它字符;不能大于200;唯一可以的是
- 一、背景大家都知道gevent的机制是单线程+协程机制,当遇到可能会阻塞的操作时,就切换到可运行的协程中继续运行,以此来实现提交系统运行效率
- 之前用Class类来搭建神经网络class Neuro_net(torch.nn.Module): ""&q
- poi介绍:Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Micr
- 本文实例为大家分享了Vue自定义日历插件的具体代码,供大家参考,具体内容如下由于网上的插件没有符合项目的需求决定自己实现图示如下:默认选择今
- Taglib指令介绍Taglib指令,其实就是定义一个标签库以及自定义标签的前缀。比如struts中支持的标签库,html标签库、bean标
- ASP中查询数据库记录写入XML文件示例,把下面代码保存为Asp_XML.asp运行即可: &
- 1、程序执行代码:#Author by Andy#_*_ coding:utf-8 _*_import os,sys,timeBase_di