2011-05-26 57 views
3

只是一个简单的问题,这个css代码将无法在ie8中投影阴影,任何想法为什么它不工作?快速下降阴影css问题ie8不能正常工作

/* Drop shadow */ 
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000')"; 
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000'); 
box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.7); 
-moz-box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.7); 
-o-box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.7); 
-webkit-box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.7); 
+0

我从来没有见过像这样的CSS。你不能使用阴影图像吗? – Midas 2011-05-26 20:37:20

+1

@Midas它是CSS3和它的好处之一是,你不必再使用图像:-) – andyb 2011-05-26 20:59:35

+0

我发现'-ms-filter'对于IE8是多余的和不必要的。您在这里找到了代码:http://robertnyman.com/2010/03/16/drop-shadow-with-css-for-all-web-browsers/ – JohnB 2011-12-17 19:20:56

回答

3

我不知道如果这是一个IE8的错误,但如果添加了background-colorseems to work as expected

在Chrome中,删除background-color会留下投影,但在IE8中,文本会继承投影并看起来很糟糕。如果你有一个坚实的背景,你可以匹配你想要投影的元素的背景。不幸的是transparent导致IE8出现同样的问题。

+0

如果使用http:// css-tricks.com/how-to-create-an-ie-only-stylesheet/ – Jung3o 2011-05-26 20:59:19

+0

谢谢你的建议。 – 2011-06-01 18:15:53

+2

这不是一个错误。如果没有背景颜色,'filter:progid:DXImageTransform.Microsoft.Shadow()'仅为文本创建一个阴影。 'box-shadow'是盒子阴影的CSS3属性。所以要在IE中获得相同的效果,你必须指定一个盒子。但这是解决问题的正确方法。 +1 – JohnB 2011-12-17 19:19:43

0

用阴影过滤器指定元素的宽度为我解决了类似的问题。