我有一个页面,它将CSS样式filter: alpha(opacity=30);
应用于某些元素以覆盖IE8用户。对我来说,这总是很好;有问题的元素总是以我期望的方式呈现。但是,对于使用完全相同构建的IE8的其他一些用户,这些元素偶尔会呈现,就像缺少或禁用了不透明度过滤器一样。它实际上并没有丢失;他们可以打开IE开发人员工具面板,选择有问题的元素,并在右侧窗格中查看样式,但IE似乎忽略了它。对于这些用户,重置浏览器配置(使用工具| Internet选项|高级|重置...)会使问题消失,但最终会回来。
我知道有些情况下IE8不会将不透明度过滤器应用于给定元素(例如,如果元素没有布局),但在这种情况下,同一页面上的完全相同的元素将从一次访问到下一次访问呈现不同,所以我不认为这是HTML的问题。看起来这些用户似乎某种程度上会影响他们的浏览器配置,导致IE8完全忽略所有页面上的alpha过滤器,直到手动重置浏览器配置。这甚至可能吗?
答案 0 :(得分:1)
在IE8中可以完全禁用CSS过滤器吗?
是的,可以禁用此功能。
filter
功能基本上是执行工作的ActiveX控件的包装器。如果禁用ActiveX控件,则也将禁用过滤器功能。
您所描述的最可能的原因是某种自动安全软件会禁用ActiveX。
在浏览器中启用ActiveX会被视为安全问题,因为它可能会将用户暴露给可以对其系统进行深层访问的未知代码。因此,许多用户选择禁用该功能。
某些安全产品也可能会自动为其用户执行此操作。您所看到的效果听起来就像这样,安全工具会在常规例行系统检查中发现它时启用它。
对于较新的IE版本(IE10以上版本)的用户,您可能也会遇到问题,默认情况下禁用ActiveX功能。这显然不是IE10标准模式中的问题,因为您拥有所有标准的CSS3功能,因此不需要filter
(事实上,{IE}标准模式中无法提供filter
),但是如果你在IE8兼容模式下使用IE10,那么你的filter
代码很可能无法正常工作,即使你处于一种你可能期望它可用的模式。