用css實現(xiàn)透視效果
今天萌發(fā)一個想法,用css來實現(xiàn)透視效果。起初,我想到的是我們常見的添加陰影效果的方法,用多個div通過偏移來實現(xiàn),但這需要很多 div,不夠理想。隨后,我想到css的一個屬性:border,在border相連接處可以產(chǎn)生對角線效果。這樣用兩個div就可以實現(xiàn),我們先看看 最終效果 ,然后再分析實現(xiàn)過程。
首先,我們看看border如何生成的對角線效果,在你的html的頭部增加以下代碼,你就會看到 這樣的效果 。
.border{width:0;height:0;border-width:50px;border-color:#f00 #0f0 #00f #000;border-style:solid;}
有了上面的基礎(chǔ),我們就可以用兩個額外的div來實現(xiàn)透視效果。
一、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;/*要實現(xiàn)透視效果元素的寬度+透視距離*/ height:140px;/*要實現(xiàn)透視效果元素的高度+透視距離*/ } .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;/*要實現(xiàn)透視效果元素的高度(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定義高度和寬度,并相對定位,確保右邊和下邊的透視區(qū)域能定位的相應(yīng)的位置,高度值和寬度值為要實現(xiàn)透視效果元素的高度加上相應(yīng)的透視距離。.perspective-r只需設(shè)置高度值,其值為.perspective-outer的高度減去border-top,.perspective-b只需設(shè)置寬度值,其值為.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;
本文鏈接:http://www.95time.cn/tech/web/2009/6992.asp
出處:
責(zé)任編輯:bluehearts
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|