我正在使用专有的MS'过滤器'属性来尝试创建一个非丑陋的等效于css3 text-shadow和box-shadow;
在我遇到这个问题之前,我确实做得非常好。看起来当我将一个过滤器应用于另一个也有过滤器的div中的div时,过滤器效果最终会被合并在子对象上。
我尝试过使用filter:none;做重置但没有快乐。我也尝试了不同的语法变体,即“-ms-filter:'progid:... Glow()'”,“filter:progid:... Glow()”,“filter:Glow()”等等。
在IE8中进行测试
答案 0 :(得分:95)
布尔属性已启用,您可以为其设置 false 或 true http://msdn.microsoft.com/en-us/library/ms532997%28v=vs.85%29.aspx
示例:
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)";
答案 1 :(得分:20)
-ms-filter属性是非标准的,特定于浏览器的CSS条目,因此要求其参数用引号括起来。所以-ms-filter:“none”可以正常工作。
答案 2 :(得分:16)
试试这个:
过滤器: - ;
答案 3 :(得分:6)
通过将孩子定位为绝对或亲戚,我取得了一些成功。这似乎没有提前工作,所以一旦我变得更复杂,它可能会再次破裂
我认为一旦父母有一个过滤器应用它的所有孩子基本上在内部成为directx表面。您仍然可以选择文本,但它会滞后。我认为文本选择是一个黑客,它使每个字母成为一个单独的表面。这是一个糟糕的混乱,它解释了为什么一般的浏览器和过滤器特别错误的原因。
答案 4 :(得分:6)
如果您使用的是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; }
答案 5 :(得分:1)
您是否尝试过enable/disable过滤器?
答案 6 :(得分:0)
我发现最好的方法是display:inline-block(将white-space:nowrap应用到容器中)。但它似乎与IE7和较低的
有关