CSS3之------box-shadow屬性使用方法(1),即單邊陰影效果設置


3.5.2 box-shadow屬性使用方法(1)

@原文url:http://book.51cto.com/art/201407/444460.htm

和PSD軟件制作圖片相比,box-shadow修改元素的陰影效果要方便得多,因為box-shadow可以修改六個參數,得到不同的效果。下面結合一些簡單的案例來對box-shadow屬性進行演示說明。

1.單邊陰影效果

定義元素的單邊陰影效果和調協border的單邊邊框顏色是相似的,例如:

  1. <html lang="en-US"
  2. <head
  3.   <meta charset="UTF-8"
  4.   <title>box-shadow設置單邊陰影效果title
  5.   <style type="text/css"
  6.     .box-shadow {  
  7.       width: 200px;  
  8.       height: 100px;  
  9.       border-radius: 5px;  
  10.       border: 1px solid #ccc;  
  11.       margin: 20px;  
  12.     }  
  13.     .top {  
  14.       box-shadow: 0 -2px 0 red;  
  15.     }  
  16.     .right {  
  17.       box-shadow: 2px 0 0 green;  
  18.     }  
  19.     .bottom {  
  20.       box-shadow: 0 2px 0 blue;  
  21.     }  
  22.     .left {  
  23.       box-shadow: -2px 0 0 orange;  
  24.     }  
  25.   style
  26. head
  27. <body
  28.   <div class="box-shadow top">div
  29.   <div class="box-shadow right">div
  30.   <div class="box-shadow bottom">div
  31.   <div class="box-shadow left">div
  32. body
  33. html

效果如圖3-38所示。

這個案例中,使用box-shadow給元素設置了頂邊、右邊、底邊和左邊的單邊陰影效果。主要通過box-shadow的水平和垂直陰影的偏移量 來實現,其中x-offset為正值時,生成右邊陰影,反之為負值時,生成左邊陰影;y-offset為正值時,生成底部陰影,反之為負值時生成頂部陰 影。此例中是一個單邊實影投影效果(陰影模糊半徑為0),但是如果陰影的模糊半徑不是0,上面的方法還能不能實現單邊陰影效果呢?不急着來回答,在上面的 實例中添加一個模糊半徑,例如:

  1. .top {  
  2.       box-shadow: 0 -2px 5px red;  
  3.     }  
  4.     .right {  
  5.       box-shadow: 2px 0 5px green;  
  6.     }  
  7.     .bottom {  
  8.       box-shadow: 0 2px 5px blue;  
  9.     }  
  10.     .left {  
  11.       box-shadow: -2px 0 5px orange;  
  12.     } 

圖3-39說明,這個效果並不是理想的單邊陰影效果,當box-shadow添加了5px陰影模糊半徑后,陰影不再是實影投影,陰影清晰度向外擴散,更具陰影的效果。但造成了另一個問題,給元素其他三個邊加上淡淡的陰影效果,可這並不是設計需要的效果。

那究竟要怎么做呢?此時,box-shadow屬性中的陰影擴展半徑(spread-radius)會是一個很關鍵的屬性,要實現單邊陰影效果,必須配上這個屬性(除單邊實影之外)。

  1. .top {  
  2.       box-shadow: 0 -4px 5px -3px red;  
  3.     }  
  4.     .right {  
  5.       box-shadow: 4px 0 5px -3px green;  
  6.     }  
  7.     .bottom {  
  8.       box-shadow: 0 4px 5px -3px blue;  
  9.     }  
  10.     .left {  
  11.       box-shadow: -4px 0 5px -3px orange;  
  12.     } 

上面的代碼調整了陰影的位移量,新增了box-shadow的擴展半徑,


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM