【问题标题】:Gradient for IE6 not workingIE6的渐变不起作用
【发布时间】:2011-09-20 04:24:58
【问题描述】:

我在一个网页上有几个 div,它们使用 IE css 过滤器为背景创建渐变效果。

该页面主要在 IE6 中查看(不幸的是我没有其他选择)并且在我的开发机器上显示良好。我还尝试使用 IETester 查看该页面,该页面在 IE 5.5 到 IE 8 中也能正常显示。

但是,在“实时”机器上查看页面时,渐变根本不显示。 “实时”机器上的浏览器是带有 sp3 的 IE 6。我检查了 div,它们都有“hasLayout”,所以这不是问题。

IE 中是否有任何设置会阻止过滤器工作,或者任何人都可以提出任何其他原因导致它们不会出现。我不明白为什么它们可以在一个版本的 IE 6 中工作,而在另一个版本中却不行。

很遗憾,我无法链接到任何示例。

谢谢

【问题讨论】:

  • 可能是浏览器决定在怪癖/标准模式之间切换,这往往会很快杀死大多数与 css 相关的东西。
  • 我们不希望您链接到示例,我们希望您发布您正在使用的 CSS。 :D
  • (1.) 清除浏览器缓存。 (2.) 确保新文件上传到服务器。 (3.) 在本机其他浏览器中查看。这也是一个有用的渐变工具。 colorzilla.com/gradient-editor
  • 感谢您的回复。我使用的代码是:filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0A284B', endColorstr='#135887');。就像我说的,它正常工作,但在实时服务器上尝试它会完全消除所有渐变
  • 你可以使用重复的背景图片来创建渐变吗?

标签: css internet-explorer-6 gradient


【解决方案1】:

IE 的filter 功能没有内置在浏览器中;他们正在使用外部库(DLL)。这就是“progid”部分的全部意义所在,也解释了为什么其中一些如此笨拙。

如果客户端计算机上未安装这些 DLL,则 filter 样式将不起作用。如果它在某些 IE6 机器上工作,但在其他机器上不工作,那么这几乎肯定是您遇到的问题。

理论上,您应该可以通过安装缺少的 DLL 来解决问题。

但是,您的问题是,如果客户端还没有从 IE6 升级他们的浏览器,那么可以肯定他们不会让您在他们的机器上摆弄安装未知 (给他们)图书馆。在任何情况下,您都必须为每台机器执行此操作。

最重要的是,实际上这不是一个选择。你最好的选择是放弃尝试让 IE6 做一些花哨的东西,而重新使用背景图像作为你的渐变。写起来不爽,不过IE6还是标准浏览器的时候大家都这么写是有原因的。

【讨论】:

  • 但你真正的最好的选择是永远不要从事需要 IE 6 的工作! ;)
  • @Stephen P - 呵呵,是的,非常同意!!不过公平地说,如果缺少这些 DLL,IE7 和 IE8 也会遇到同样的问题。
  • 我认为这是问题所在,但就像你说的,他们不准备让我对他们的机器做任何事情,所以我将不得不回归基础!感谢您的帮助
  • 使用旧版浏览器的人不会期待现代的东西,因此请使用旧版浏览器的旧技术和新浏览器的新技术
猜你喜欢
  • 1970-01-01
  • 2018-12-12
  • 2016-12-23
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
相关资源
最近更新 更多