學習來源:慕課網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傾斜轉換;