-ms-filter和filter有什么区别?

36

IE中的filter属性和-ms-filter属性有何区别?如果我使用其中一个,应该同时使用它们吗?它们是否执行相同的操作,但仅适用于IE的某些版本?

3个回答

54

微软引入了-ms-filter来使Internet Explorer更加符合标准(CSS 2.1要求厂商扩展必须有厂商前缀)。由于原始的filter属性语法不符合CSS 2.1标准,因此IE8+需要将-ms-filter属性的值用引号括起来。

filter: alpha(opacity=40);
-ms-filter: "alpha(opacity=40)";

-ms-filter是在IE8+中支持的,遗留的filter属性也是我所知道的为了向后兼容而在所有版本的Internet Explorer中都得到支持。

相关链接:http://blogs.msdn.com/b/ie/archive/2008/09/08/microsoft-css-vendor-extensions.aspx

请注意,对于滤镜的支持可能会在IE10中被删除。


我正在使用IE8,过滤器可以工作,但-ms-filter不行。有什么想法吗? - xr280xr
请确保浏览器使用IE8标准模式来渲染网页。 - duri
你说得对。我正要回复说它正在运行在怪异模式下,这完全搞砸了它。 - xr280xr

1

-ms-filter 属性

设置或检索应用于对象的滤镜或滤镜集合。注意:自 Windows Internet Explorer 9 起,此功能已被弃用。自 Internet Explorer 10 起,此功能已被删除,不应再使用。

-ms-filter 属性


-1

所有现代浏览器都忽略filter属性,因为它不是CSS3属性,也不是标准属性。将其通过验证器运行,它将被标记为错误。 - Rob
@Rob 你说得对,我不小心写成了“-ms-filter”,谢谢你纠正我的疏忽!虽然“filter”可能无法通过验证,但它确实有助于尝试使事物跨浏览器兼容。 - ayyp
1
好的,你应该使用ms-filter。这是相同的东西,但它会验证。 - Rob
5
@Rob它不会被验证,就像任何其他供应商扩展一样。另外,在IE7及以下版本中不支持“-ms-filter”。 - duri
@duri - 厂商扩展是有效的CSS。验证器已启用扩展,但扩展仍显示为错误。我以为这个问题已经解决了。 - Rob
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接