2011-08-24 67 views
0

我使用<meta http-equiv="X-UA-Compatible" content="IE=8">使IE9呈现为IE8。这已经解决了我的很多问题,但是因为IE8不支持box-shadow我不得不使用filter: progid:DXImageTransform.Microsoft.Shadow(color='#333333', Direction=145, Strength=5);来获得与我的影子类似的效果。现在,IE9确实支持box-shadow,但是我无法让IE9使用box-shadow而不是filter强制IE9渲染为IE8,但仍然使用CSS3属性

有谁知道如何让IE9渲染阴影?

+1

很显然,'box-shadow'不再有效,因为你强制IE9将网站呈现为IE8。删除'X-UA-Compatible'标题和'box-shadow'将会起作用。 – duri

+0

“阴影”过滤器看起来非常糟糕。 – thirtydot

+4

那么,为什么你把IE9渲染成IE8呢?当然你的时间会更好地解决阻止IE9渲染正确的问题吗? –

回答

1

如果它处于IE8模式,则无法使IE9使用其原生box-shadow

您可以:

  • 只需使用IE9模式,并确定你的页面在它的工作 - 这是我会怎么做。
  • 使用CSS3 PIE - 它可以在IE6-8中模拟box-shadow
0

为什么你强迫它呈现为IE8,然后期待它呈现为IE9? :) IE8没有box-shadow支持,所以当IE8渲染为IE8时,IE9忠实地禁用它。

如果你想让IE9渲染盒子阴影,你必须将其设置为IE9或EDGE渲染。如果您不得不保持x-ua兼容,那么您必须使用过滤器。

注有IE8的不同语法...

/* For IE 8 */ 
-ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000')"; 
/* For IE 5.5 - 7 */ 
filter: progid:DXImageTransform.Microsoft.Shadow(Strength=4, Direction=135, Color='#000000'); 

(例如,从http://robertnyman.com/2010/03/16/drop-shadow-with-css-for-all-web-browsers/抢下)

因为这些都是非常讨厌的理想,我建议你在发表了IE-仅样式孤城有条件的评论。