CSS3--實現特殊陰影 (實例)


學習來源:慕課網http://www.imooc.com/view/240

先看效果圖↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

 HTML結構

 1 <body>
 2     <div class="wrap effect">    
 3     <!-- effect類:是陰影類,其他元素也可以使用 -->
 4         <h1>Shadow Effect</h1>
 5     </div>
 6     <ul class="box">
 7         <li><img src="images/photo1.jpg" alt=""></li>
 8         <li><img src="images/photo2.jpg" alt=""></li>
 9         <li><img src="images/photo3.jpg" alt=""></li>
10     </ul>
11 </body>

CSS樣式(省略了各瀏覽器前綴)

 1 /*通用類*/
 2 body { font-family: Arial; font-size: 20px;}
 3 body,ul {margin: 0; padding: 0; list-style: none;}
 4 .wrap {width:70%; height:200px; margin:50px auto; background: #fff; }
 5 .wrap h1 {font-size: 20px; text-align: center; line-height: 200px; }
 6 
 7 /*弧度陰影*/
 8 .effect { 
 9     position: relative;
10     box-shadow: 0px 1px 4px rgba(0,0,0,0.3),
11     0 0 10px rgba(0,0,0,0.1) inset; 
12     /*添加一個范圍=4px的小陰影;再添加一個范圍=10px的內陰影;*/
13 }
14 .effect:before,.effect:after {
15     content: '';
16     background: #f00;
17     position: absolute;
18     z-index: -2;
19     top:50%; bottom:0; left:30px; right:30px;
20     /*設置四個方向值,然后瀏覽器自動計算盒子的大小;*/
21     box-shadow: 0px 0px 20px rgba(0,0,0,0.8);
22     /*設置添加的盒子的陰影;*/
23     border-radius: 100px/10px;
24     /*添加圓角:水平方向圓角大小是100px/垂直方向圓角大小是10px;*/
25 }
26 
27 /*翹邊陰影*/
28 .box{
29     width:980px;
30     height:auto;
31     clear:both;
32     overflow:hidden;
33     margin:20px auto;
34 }
35 .box li{
36     position: relative;
37     /*以li為定位基准;*/
38     width:300px;
39     height:210px;
40     float:left;
41     background: #fff;
42     margin:20px 10px;
43     border:2px solid #efefef;
44     box-shadow: 0px 1px 4px rgba(0,0,0,0.27);
45     /*給li添加一個小小的陰影;*/
46 }
47 .box li img {
48     display: block;
49     width:290px;
50     height:200px;
51     margin:5px;
52 }
53 .box li:before{
54     content: '';
55     position: absolute;
56     z-index: -3;
57     width:90%;
58     height:80%;
59     left:18px;
60     bottom:8px;
61     box-shadow: 0px 8px 20px rgba(0,0,0,0.6);
62     transform:skew(-12deg) rotate(-4deg);
63     /*圖形向右傾斜12度;並逆時針旋轉4度;*/
64 }
65 .box li:after{
66     content: '';
67     position: absolute;
68     z-index: -4;
69     width:90%;
70     height:80%;
71     right:18px;
72     bottom:8px;
73     box-shadow: 0px 8px 20px rgba(0,0,0,0.6);
74     transform:skew(12deg) rotate(4deg);
75     /*圖形向左傾斜12度;並順時針旋轉4度;*/
76 }

之前在PS里用灰色圖層疊加在其他圖層下面做特殊陰影效果,相同思路應用到CSS里了。贊!

知識點補充↓↓↓↓↓↓↓

 1 1.box-shadow--添加一個或多個陰影
 2     >1.功能:box-shadow--添加一個或多個陰影;
 3     >2.語法:box-shadow:h-shadow v-shadow blur spread color inset;
 4     >3.參數:
 5         >>:h-shadow(必需):水平陰影的位置;允許負值;
 6         >>:v-shadow(必需):垂直陰影的位置;允許負值;
 7         >>:blur(可選):模糊距離;
 8         >>:spread(可選):陰影的尺寸;
 9         >>:color(可選):陰影的顏色;
10         >>:inset(可選):將外部陰影(outset)改為內部陰影;
11     >4.瀏覽器:IE9+/FF4
12 
13 2.:before與:after 
14     >1.:before選擇器:在被選元素的內容前面插入內容;
15     >2.:after選擇器:在被選元素的內容后面插入內容;
16     >3.說明:需要使用content屬性來指定要插入的內容;
17     >4.瀏覽器:IE8及更早版本中的:after,必須使用<!DOCTYPE>;
18 
19 3.transform--
20     >1.功能:向元素應用2D或3D轉換
21     >1.語法:transform:none | transform-functions
22     >2.參數:
23         >>:skew(x-angle,y-angle):定義沿着X和Y軸的2D傾斜轉換;
24         >>:skewX(angle):定義沿着X軸的2D傾斜轉換;
25         >>:skewY(angle):定義沿着Y軸的2D傾斜轉換;

 


免責聲明!

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



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