我如何重置或重写IE浏览器的CSSfilter?

我使用先行MS'filter'属性来尝试创build一个非丑陋的等效于css3文本阴影和盒子阴影;

在我遇到这个问题之前,我确实做得很好。 它看起来像当我将filter应用到另一个div中也有一个筛选器的filter效果最终结合在子对象上。

我不能说得好多了,下面是一个演示: http : //cableflow.dev.arc.net.au/test/filters.html

我试过使用filter:none; 做一个重置但不喜欢。 我也尝试了不同的语法变体,即“-ms-filter:”progid:… Glow()'“,”filter:progid:… Glow()“,”filter:Glow()“等等。

在IE8中testing

有布尔属性启用 ,您可以设置为falsetrue http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx

例:

 -ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)"; 

-ms-filter属性是非标准的,特定于浏览器的CSS条目,因此要求其参数用引号括起来。 所以-ms-filter:“none”将工作得很好。

尝试这个:

filter: – ;

通过定位孩子的绝对或相对,我已经取得了一些成功。 这似乎并没有早些工作,所以一旦我变得更复杂,它可能会再次破裂

我认为,一旦家长有filter应用所有的孩子本质上成为directx表面内部。 你仍然可以select文本,但它滞后。 我认为文本select是一个破解,使每个字母单独的表面。 这是一个糟糕的混乱,很长一段时间来解释为什么一般的浏览器和filter特别是如此多的错误。

如果你使用的是HTML5,你可能想要走下去的路线

 <!doctype html> <!--[if lt IE 7 ]> <html lang="en" class="ie6 oldie"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="ie7 oldie"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="ie8 oldie"> <![endif]--> <!--[if IE 9 ]> <html lang="en" class="ie9"> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="gtie9 modern"> <!--<![endif]--> 

并在你的CSS使用类似于:

 .ie9 .element {filter: none; } 

您是否尝试启用/禁用filter?

我发现最好的方法是显示:内联块(应用空白:nowrap到容器)。 但它似乎与IE7和更低的工作不好