首先,我們看看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,所以為白色。