在IE中,-ms-filter和filter都用于渐变吗?

时间:2011-04-18 15:23:34

标签: html visual-studio-2010 css css-validator

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

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标准的浏览器吗?

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

谢谢,

2 个答案:

答案 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。