首頁 > web前端 > css教學 > 主體

如何使用css實現透視效果

不言
發布: 2018-06-21 17:32:49
原創
3229 人瀏覽過

本文只是做一個簡單得測試,其目的在於拋磚引玉。這種方法其實用性究竟有多大,咱姑且不論,但至少可以給我們一個解決問題的思路。希望此文能對你有幫助。

今天萌發一個想法,用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中文網!

相關推薦:

如何使用css3實作input輸入框顏色漸變發光的效果

如何利用CSS3製作簡單的3d半透明立方體圖片

以上是如何使用css實現透視效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板