3

我正在使用以下代码,但现在我不知道是否需要同时使用这两个代码:

filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#46494F', endColorstr='#141A1E',GradientType=0);

-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#46494F', endColorstr='#141A1E',GradientType=0)";} 

让我更困惑的是 VS2010 报告了以下消息“Validation CSS 2.1 - filter is not a known property name。”

有没有人在使用这些时遇到过类似的问题?IE9及以上版本怎么样?这些是否仍在使用,或者该浏览器是否使用新的 CSS 标准?

希望有人比我更了解这一点。

谢谢,

4

2 回答 2

2

filter并且-ms-filter是 Microsoft 发明的专有 CSS 属性,仅用于 IE,因此验证消息不是问题。

filter用于 8 以前的 IE,而 IE8+ 采用前缀版本,-ms-filter.

于 2011-04-18T15:26:44.123 回答
1

Microsoft 在 IE8 中替换为的原因filter-ms-filter因为他们需要对其进行不兼容的语法更改。

-ms-filter允许您将整个过滤器字符串括在引号中,而旧filter样式则不允许。

这很重要,因为许多过滤器都包含字符串,例如progid:(由于冒号,这是无效的 CSS)。在样式中包含这些过滤器filter,如果没有引号会导致其他浏览器阻塞整个样式表。

IE9 已经完全放弃了对两者的filter支持-ms-filter。如果你想在 IE9 中使用这些效果,你必须使用标准的 CSS3。

于 2011-04-18T15:45:09.587 回答