-1

我有一个页面将 CSS 样式filter: alpha(opacity=30);应用于某些元素以覆盖 IE8 用户。对我来说,这总是很好。有问题的元素总是以我期望的方式呈现。但是,对于使用完全相同版本的 IE8 的其他一些用户,这些元素有时会呈现为好像缺少或禁用了不透明度过滤器。它实际上并没有丢失。他们可以打开 IE 开发人员工具面板,选择有问题的元素,然后在右侧窗格中查看样式,但 IE 似乎忽略了它。对于这些用户,重置浏览器配置(使用工具 | Internet 选项 | 高级 | 重置...)会使问题消失,但最终会再次出现。

我知道在某些情况下 IE8 不会将不透明度过滤器应用于给定元素(例如,如果元素没有布局),但在这种情况下,同一页面上完全相同的元素将呈现不同从一次访问到下一次访问,所以我认为这不是 HTML 的问题。似乎这些用户正在以某种方式影响他们的浏览器配置,导致 IE8 完全忽略所有页面上的 alpha 过滤器,直到手动重置浏览器配置。这甚至可能吗?

4

1 回答 1

1

可以在 IE8 中完全禁用 CSS 过滤器吗?

是的,可以禁用此功能。

filter功能基本上是完成工作的 ActiveX 控件的包装器。如果 ActiveX 控件被禁用,则过滤器功能也将被禁用。

您所描述的最可能的原因是某种自动安全软件禁用了 ActiveX。

在浏览器中启用 ActiveX 被认为是一个安全问题,因为它可能会将用户暴露给可以对其系统进行深层访问的未知代码。因此,许多用户选择禁用该功能。

一些安全产品也可能会自动为其用户执行此操作。您所看到的效果听起来像是正在发生,安全工具在常规例行系统检查期间发现它已启用时将其关闭。

您可能还会遇到使用较新 IE 版本(IE10 及更高版本)的用户的问题,这些版本默认禁用 ActiveX 功能。这在 IE10 标准模式下显然不是问题,因为您拥有所有标准 CSS3 功能,所以不需要filter(而且确实filter在 IE10 标准模式下不可用),但是如果您在 IE8 兼容性中使用 IE10模式,那么您的filter代码很可能无法工作,即使您处于您可能希望它可用的模式。

于 2013-10-31T16:55:33.067 回答