如何使用css实现透视效果
今天萌发一个想法,用css来实现透视效果。起初,我想到的是我们常见的添加阴影效果的方法,用多个p通过偏移来实现,但这需要很多 p,不够理想。随后,我想到css的一个属性:border,在border相连接处可以产生对角线效果。这样用两个p就可以实现,我们先看看 最终效果 ,然后再分析实现过程。
首先,我们看看border如何生成的对角线效果,在你的html的头部增加以下代码,你就会看到 这样的效果 。
.border{width:0;height:0;border-width:50px;border-color:#f00 #0f0 #00f #000;border-style:solid;}
有了上面的基础,我们就可以用两个额外的p来实现透视效果。
一、html代码如下:
<p class="perspective-outer"> <p class="perspective-r"></p> <p class="perspective-b"></p> <p class="perspective-inner">透视效果元素</p> </p>
二、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,所以为白色。
三、后记
本文只是做一个简单得测试,其目的在于抛砖引玉。这种方法其实用性究竟有多大,咱姑且不论,但至少可以给我们一种解决问题的思路。希望此文能对你有所帮助。
以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
相关推荐:
以上就是如何使用css实现透视效果的详细内容,更多请关注其它相关文章!
上一篇: 用CSS制作立体导航栏的方法
下一篇: 使用css和js实现网页选项卡的效果
推荐阅读
-
学习使用Material Design控件(二)使用DrawerLayout实现侧滑菜单栏效果
-
如何使用向日葵远程控制软件实现远程控制、管理、操作等一系列项目的图文教程
-
Android 使用CoordinatorLayout实现滚动标题栏效果的实例
-
基于HTML5+CSS3实现简单的时钟效果
-
vue2.0 中使用transition实现动画效果使用心得
-
Vue使用vue-area-linkage实现地址三级联动效果的示例
-
如何使用python实现删除文件或文件夹实例
-
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
-
css3闪亮进度条效果实现思路及代码
-
详解CSS3的图层阴影和文字阴影效果使用