日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

CSS3 box

 風之飛雪 2014-03-13

一、簡單的前言

一般的投影效果,尤其通過CSS實現(xiàn)的投影效果(無論是CSS3,還是IE濾鏡),都是直來直往的。紙張是有卷角的,其投影就是曲面的,如何使用CSS模擬出紙張的卷邊曲線投影效果就是本篇的內容了。

二、實現(xiàn)原理簡介

首先,曲線投影的終效果其實是多投影重疊的效果:一點點傾斜的投影重疊一個直直的投影。
一般的直來直往的投影顯然是使用box-shadow屬性就可以搞定了。至于那個傾斜的投影,如果是現(xiàn)代瀏覽器,則需要就是CSS3變換屬性transform(具體參見之前的“CSS3 Transitions, Transforms和Animation使用簡介與應用展示”一文)。首先是傾斜,5度左右的樣子,然后讓其在主投影的后面顯示就可以了。然后,單單只有傾斜是不夠的,因為有一個腳會從一側露出來,這很好理解。假設兩個矩形一樣大,位置完全重疊,如果發(fā)生旋轉,則必定有邊角不重合而露出來。即使矩形尺寸不一樣,只要其以一個公共的邊角旋轉,至少會有兩個角露出來,而實際上我們只需要一個,也就是斜邊投影的哪個角。那么這個問題該如何解決呢,也很簡單,同樣是transform,不過這回不是旋轉,而是拉伸(skew),將規(guī)整的矩形拉伸成平行四邊形,可避免旋轉的時候多余的角露出來。

對于不支持CSS3的IE瀏覽器,按照上面的原理,理論上也是可以模擬出曲線投影效果的。因為IE下的投影效果可以使用投影濾鏡(效果生硬不推薦)實現(xiàn),或是模糊濾鏡實現(xiàn)(推薦),至于旋轉也有旋轉濾鏡。但是,就性能和成本而言,是否應該使用很值得商榷。

三、具體實現(xiàn)

在現(xiàn)代瀏覽器下,一層標簽就可以了。首先,如下HTML:

<div class="curved_box"></div>

相關CSS代碼如下:

.curved_box {
    display: inline-block;
    *display: inline;
    width: 200px;
    height: 248px;
    margin: 20px;
    background-color: #fff;
    border: 1px solid #eee;
    -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 60px rgba(0, 0, 0, 0.06) inset;
    -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.27), 0 0 40px rgba(0, 0, 0, 0.06) inset;
    position: relative;
    *zoom: 1;
}

.curved_box:before {
    -webkit-transform: skew(-15deg) rotate(-6deg);
    -moz-transform: skew(-15deg) rotate(-6deg);
    transform: skew(-15deg) rotate(-6deg);
    left: 15px;
}
.curved_box:after {
    -webkit-transform: skew(15deg) rotate(6deg);
    -moz-transform: skew(15deg) rotate(6deg);
    transform: skew(15deg) rotate(6deg);
    right: 15px;
}

.curved_box:before, .curved_box:after {
    width: 70%;
    height: 55%;
    content: ' ';

    -webkit-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
    -moz-box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.3);

    position: absolute;
    bottom: 10px;
    z-index: -1;
}

使用了content內容生成技術,創(chuàng)建斜邊投影。

最后實現(xiàn)的效果就是下面這張圖的效果:

您可以狠狠地點擊這里:紙張的曲線投影效果demo

如果您使用的是IE瀏覽器,可能也會看到點效果,大致如下:

這是我使用IE濾鏡折騰出來的效果。由于IE6~7不支持before、after,所以,IE下投影所在標簽的定位我是使用js輔助實現(xiàn)的。所以花的功夫不少,但是最后的效果還是不及Firefox以及Chrome來的逼真。

由于IE濾鏡方法不是本文重點,自己也不推薦這種做法,所以這就就不展示IE的實現(xiàn)了。您可以查看頁面源代碼。

友情提示
這里的斜邊投影使用的是負值z-index定位到本體陰影的后面的。由于使用的是z-index負值,所以,請務必保證當前投影元素的所有父標簽均沒有背景圖片或背景色(body標簽除外),否則,斜邊投影是看不到的。

四、快速結語

所說目前而言,本文實例效果是沒有多少實際應用價值的。但是,其中實現(xiàn)的原理,關于content的使用,以及對z-index的一些認識,熟悉CSS3的一些屬性還是頗有幫助的。可能不需要多少年,本文的例子就會會很基本很常用的入門實例了,期待那一天的到來。

原創(chuàng)文章,轉載請注明來自張鑫旭-鑫空間-鑫生活[http://www.]
 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多