使用 CSS filter 实现像 CSS3 的 box-shadow 效果,使用控制不同方向的投影来消除 filter 实现投影有噪点的不足。
.shadow{
/* modern web browsers */
-moz-box-shadow:1px 3px 12px #bbb;
-webkit-box-shadow:1px 3px 12px #bbb;
box-shadow:1px 3px 12px #bbb;
/* 一定要设置background, 不然 ie 会显示在字体上 */
background: #fff;
/* gte=ie8 */
-ms-filter:"progid:DXImageTransform.Microsoft.Glow(color=#aaaaaa,strength=3) progid:DXImageTransform.Microsoft.Shadow(color=#eeeeee,direction=0,strength=6) progid:DXImageTransform.Microsoft.Shadow(color=#dddddd,direction=90,strength=10) progid:DXImageTransform.Microsoft.Shadow(color=#dddddd,direction=180,strength=6) progid:DXImageTransform.Microsoft.Shadow(color=#eeeeee,direction=270,strength=6)";
/* lte=ie7 */
*filter:
progid:DXImageTransform.Microsoft.Shadow(color=#eeeeee,direction=0,strength=7)
progid:DXImageTransform.Microsoft.Shadow(color=#dddddd,direction=90,strength=10)
progid:DXImageTransform.Microsoft.Shadow(color=#dddddd,direction=180,strength=10)
progid:DXImageTransform.Microsoft.Shadow(color=#eeeeee,direction=270,strength=7);
}
注意:记得添加 background 属性,防止 IE 把投影转移到文字上



.shadow-simple{
float:left;
margin-right:20px;
background-color:#efefef;
}
.shadow-simple img{
padding:4px;
border:1px solid #cdcdcd;
background-color:#fff;
position:relative;
top:-5px;
left:-5px;
vertical-align: top;/* 消除空白间隙 */
}