gar*_*dni 4 html css filter internet-explorer-7
我有一个适用于IE7 的特定样式表filter:none;我无权访问此文件,因此不能简单地删除该行。我需要通过CSS以某种方式覆盖它,以忽略filter:none;设置。
我试过使用filter:; filter: -;andfilter: !important;这应该会导致过滤器属性无效,但过滤器仍在设置中。
是否可以在不删除 IE7 特定样式表中的行或使用 javascript/jquery 的情况下执行此操作?
回答:
为了解决我的具体问题,不可能 像我要求的那样简单地filter用null等效的方法覆盖。正如下面的答案所暗示的那样,必须通过将过滤器直接应用于我想要覆盖的位置来覆盖它。
IE7 特定样式表:
.div.example {
filter:none;
}
Run Code Online (Sandbox Code Playgroud)
被覆盖: 通用样式表:
.div.example {
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#7F000000,endColorstr=#7F000000);
}
Run Code Online (Sandbox Code Playgroud)
从这个答案中提取
Microsoft 引入了 -ms-filter 以使 Internet Explorer 更符合标准(CSS 2.1 要求供应商扩展具有供应商前缀)。由于原始过滤器属性的语法不符合 CSS 2.1,IE8+ 要求将 -ms-filter 属性的值括在引号中。
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false)" /* IE 8+ */;
filter: none !important; /* IE 7 and the rest of the world */
Run Code Online (Sandbox Code Playgroud)
正如你所说,你需要覆盖现有的样式,所以追加 !important
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(enabled=false) !important";
Run Code Online (Sandbox Code Playgroud)
如果你想知道,报价ARE需要这种微软(MS)供应商名称。如您所见,此用例使用 MS 的渐变,将其插入您希望覆盖的任何过滤器属性。