首頁  >  文章  >  web前端  >  如何利用CSS實現曲面陰影效果的範例程式碼分享

如何利用CSS實現曲面陰影效果的範例程式碼分享

黄舟
黄舟原創
2017-07-21 14:04:322042瀏覽

不知道大家在做專案的時候遇見很絢麗的設計圖後會怎麼做。有一些設計圖會經常使用陰影效果看上去更加立體,一般情況下像我這種懶人直接就切圖了。壓根就沒有想著去研究程式碼怎麼實現。

後來我們的設計稿總是改啊改啊,***簡直是煩死我了,他要是改了圖我就要正版的切圖更換。所以我決定研究這個東西,其實我們是可以實現的哦!

如圖所示:

photo01 (2)

上面的效果就是平時寫專案最典型的效果了,做設計的小夥伴一定知道PS分鐘搞定,但是程式碼實現起來我們也可以麼? ———告訴他們:必須可以!哈哈o(∩_∩)o;說了大話那就下點功夫研究一下吧!

第一部分:HTML

頁面部分的內容很簡單接下來讓我們來看看CSS的部分吧。


<p class="con yy">
     <h1>曲线阴影</h1></p><ul class="box">
     <li><img src="img/1.jpg"></li>
     <li><img src="img/2.jpg"></li>
     <li><img src="img/3.jpg"></li></ul>

 

第二部分:CSS3

在我們看到上面這個圖片的時候大家肯定第一印像是CSS3的box-shadow ,但是如果只是這樣子我們可以實現麼?很明確不可以。

無論是曲面的也好還是翹邊的也罷,box-shadow自己是無法實現的,我們需要配合CSS3的偽類元素來實現。

來一起看看程式碼吧!

曲面陰影我們就如下程式碼就可以實現了,不熟悉偽類元素的小夥伴可以自行查閱文件看看。


*{ padding: 0; margin: 0; list-style: none;}.con{ 
    width: 70%; 
    height: 200px;
    margin: 50px auto;
    background:#FFFFFF;
    line-height: 200px;
    text-align: center;
    font-size: 24px;
}.yy{
    position: relative;
    box-shadow: 0 1px 4px rgba(0,0,0,0.3), 0 0 40px rgba(0,0,0,0.1) inset;
    -webkit-box-shadow:0 1px 4px rgba(0,0,0,0.3), 0 0 40px rgba(0,0,0,0.1) inset;
    -moz-box-shadow:0 1px 4px rgba(0,0,0,0.3), 0 0 40px rgba(0,0,0,0.1) inset;
    -o-box-shadow: 0 1px 4px rgba(0,0,0,0.3), 0 0 40px rgba(0,0,0,0.1) inset;
}.yy:after , .yy:before{
    position: absolute;
    content: &#39;&#39;;
    top: 50%;
    bottom: -1px;
    left: 10px;
   right: 10px;
    background:#fff;
    z-index: -1;    /* 圆角水平为100px 垂直为10px 必须用‘/’分开 ,不可以为空格 */
    border-radius: 100px/10px;
    box-shadow: 0 0 20px rgba(0,0,0,0.3);
   -webkit-box-shadow: 0 0 20px rgba(0,0,0,0.3);
   -moz-box-shadow: 0 0 20px rgba(0,0,0,0.3);
   -o-box-shadow: 0 0 20px rgba(0,0,0,0.3);
}

 

下面的程式碼就是怎麼去實現翹邊陰影的效果:


.box{ 
    width: 980px;
    height: 300px;
    margin: 0 auto; 
}.box li img{
    display: block;
    width: 290px;
    height: 200px;
}.box li{
   position: relative;
    float: left;
    width: 290px;
    height: 200px;
    background: #FFFFFF;
    padding: 5px;
    margin-right: 25px;
    box-shadow: 0 0px 4px rgba(0,0,0,0.3) , 0 0 60px rgba(0,0,0,0.1) inset;
    -moz-box-shadow: 0 0px 4px rgba(0,0,0,0.3) , 0 0 60px rgba(0,0,0,0.1) inset;
    -webkit-box-shadow: 0 0px 4px rgba(0,0,0,0.3) , 0 0 60px rgba(0,0,0,0.1) inset;
    -o-box-shadow: 0 0px 4px rgba(0,0,0,0.3) , 0 0 60px rgba(0,0,0,0.1) inset; 
}.box li:before{
    position:absolute;
    content: &#39;&#39;;
    width: 90%;
    height: 80%;
    left: 18px;
    bottom: 11px;
    z-index: -2;
    background: transparent;
    box-shadow: 0 8px 20px rgba(0,0,0,0.6);
    -moz-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
    -webkit-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
    -o-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
    transform: skew(-12deg) rotate(-5deg);
    -moz-transform: skew(-12deg) rotate(-5deg);
    -webkit-transform: skew(-12deg) rotate(-5deg);
    -o-transform: skew(-12deg) rotate(-5deg); 
}.box li:after{
    position:absolute;
    content: &#39;&#39;;
    width: 90%;
    height: 80%;
    right: 18px;
    bottom: 11px;
    z-index: -2;
    background: transparent;
    box-shadow: 0 8px 20px rgba(0,0,0,0.6);
    -moz-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
    -webkit-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
    -o-box-shadow: 0 8px 20px rgba(0,0,0,0.6);
    transform: skew(12deg) rotate(5deg);
    -moz-transform: skew(12deg) rotate(5deg);
    -webkit-transform: skew(12deg) rotate(5deg);
    -o-transform: skew(12deg) rotate(5deg); 
}

以上是如何利用CSS實現曲面陰影效果的範例程式碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn