强制IE9呈现为IE8,但仍然使用CSS3属性

时间:2011-08-24 14:32:07

标签: html css css3

我正在使用<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渲染阴影?

2 个答案:

答案 0 :(得分:1)

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

你可以:

  • 只需使用IE9模式并修复您的页面即可使用 - 这就是我要做的。
  • 使用CSS3 PIE - 它可以在IE6-8中模拟box-shadow

答案 1 :(得分:0)

为什么要强制它呈现为IE8然后期望它呈现为IE9? :) IE8没有盒子阴影支持,所以IE9在渲染为IE8时尽职尽责地禁用它。

如果你想让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浏览器样式表中隔离它们。