我使用以下代码,但现在我不知道是否需要同时使用这两个代码:
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#46494F', endColorstr='#141A1E',GradientType=0);
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr='#46494F', endColorstr='#141A1E',GradientType=0)";}
让我更加困惑的是VS2010报告以下消息“验证CSS 2.1 - 过滤器不是已知的属性名称”。
有没有人使用过这些问题? IE9及以上版本怎么样?这些仍在使用或者是使用新CSS标准的浏览器吗?
希望有人比我更了解这一点。
谢谢,
答案 0 :(得分:2)
filter
和-ms-filter
是Microsoft发明的专有CSS属性,仅用于IE,因此验证消息不是问题。
filter
用于8岁以上的IE,而IE8 +采用带前缀的版本-ms-filter
。
答案 1 :(得分:1)
Microsoft在IE8中将filter
替换为-ms-filter
的原因是因为他们需要对其进行不兼容的语法更改。
-ms-filter
允许您将整个过滤器字符串包装在引号中,而较旧的filter
样式则不包括。
这很重要,因为许多过滤器都包含progid:
等字符串(由于冒号而导致CSS无效)。以filter
样式包含这些过滤器,不带引号可能会导致其他浏览器在整个样式表上出现阻塞。
IE9完全放弃了对filter
和-ms-filter
的支持。如果你想在IE9中使用这些效果,你必须使用标准的CSS3。