用css来完成透視实际效果

2021-01-20 15:20 jianzhan

今日出芽1个念头,用css来完成透視实际效果。最初,我想起的是大家普遍的加上黑影实际效果的方式,用好几个div根据偏位来完成,但这必须许多 div,不足理想化。接着,我想起css的1个特性:border,在border相联接处能够造成对角线实际效果。这样用两个div便可以完成,大家先看看 最后实际效果 ,随后再剖析完成全过程。

最先,大家看看border怎样转化成的对角线实际效果,在你的html的头顶部提升下列编码,你就会看到 这样的实际效果 。

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

有了上面的基本,大家便可以用两个附加的div来完成透視实际效果。

1、html编码以下

<div class="perspective-outer">
 <div class="perspective-r"></div>
 <div class="perspective-b"></div>
 <div class="perspective-inner">透視实际效果元素</div>
</div>

2、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,因此为白色。

3、续篇

本文只是做1个简易得检测,其目地在于毛遂自荐。这类方式实际上用性到底有多大,咱暂且无论,但最少能够给大家1种处理难题的思路。期待此文能对你有一定的协助。

原文:http://www.denisdeng.com/?p=474;