我有这个代码在imagese上投下阴影:
.shadow{
box-shadow: -2px 2px 4px #666;
-webkit-box-shadow: -2px 2px 4px #666;
-moz-box-shadow: -2px 2px 4px #666;
filter: progid:DXImageTransform.Microsoft.dropShadow(color=#666, offX=-2, offY=2, positive=true);
}
这适用于FF,Opera,Safari,Chrome但不适用于IE6(尚未测试任何其他IE版本)
由于
更新:
<img src="......" class="shadow">
没有指定宽度或高度......
问题在于阴影是清晰的,完全是黑色的,而不是像阴影那样褪色,就像在FF中一样。 难以描述......阴影在那里,但它没有褪色,就像图像背后的黑框一样。
答案 0 :(得分:0)
在CSS属性中使用冒号肯定是不正确的。解决这些DX过滤器的正确方法似乎是一个下划线:
filter: progid_DXImageTransform.Microsoft.dropShadow(color=#666, offX=-2, offY=2, positive=true);
答案 1 :(得分:0)
元素需要布局(from MSDN):
几乎任何对象都可以应用过滤器。但是,应用滤镜的对象必须具有布局才能显示滤镜效果。简而言之,具有布局意味着对象具有定义的高度和宽度。某些对象(如表单控件)默认具有布局。所有其他可过滤对象通过设置height或width属性,将position属性设置为
absolute
,将writingMode属性设置为tb-rl
或将contentEditable属性设置为true
来获得布局。
另请参阅On having layout了解详情。
另请注意,filter
语法仅适用于IE6和IE7。 IE8 needs the -ms-filter
property instead, and its value should be in quotes
简而言之,为了使它在IE6中工作,添加zoom: 1
,并使其在IE8中工作,添加-ms-filter
属性(在filter属性之前!):
.shadow {
box-shadow: -2px 2px 4px #666;
-webkit-box-shadow: -2px 2px 4px #666;
-moz-box-shadow: -2px 2px 4px #666;
-ms-filter: "progid:DXImageTransform.Microsoft.dropShadow(color=#666, offX=-2, offY=2, positive=true)";
filter: progid:DXImageTransform.Microsoft.dropShadow(color=#666, offX=-2, offY=2, positive=true);
zoom: 1;
}
答案 2 :(得分:0)
使用类似的东西并根据您的需要进行更改:
.shadow{
box-shadow: -2px 2px 4px #666;
-webkit-box-shadow: -2px 2px 4px #666;
-moz-box-shadow: -2px 2px 4px #666;
cursor:hand;
height:160px;
padding:10px;
filter:progid:DXImageTransform.Microsoft.dropshadow(OffX=-2, OffY=2, Color=#666, Positive='true');
}
它适用于ie7&amp; 8(我没有6)。