当有相关元素应用透明背景时,我在IE6 / IE7中遇到了许多奇怪的渲染问题。
他们包括但不限于:
这些只是迄今为止我必须修复的7个中的2个,因为你可以看到它们没有链接并且很难调试,我相信在项目结束之前我会遇到更多的内容。
要停止我修改了一个默认的CSS规则,该规则几乎将所有元素设置为默认图像“spacer.gif” - 1KB 1x1透明图像。
旧:
background: transparent;
新:
background: url('../images/spacer.gif');
但是我现在担心服务器和客户端计算机上可能产生的开销。例如,当滚动浏览页面时,从“哑”浏览器下载每个元素的spacer.gif和客户端的CPU命中,因为它必须渲染其他图像,从而增加了加载时间(以及服务器上的负载)。
我的担忧是否合理,如果可以,他们如何才能得到纠正?或者我只是担心什么都没有,这是对这样一个愚蠢问题的适当解决方法??
tl; dr - 元素上的透明背景(不 图像)会导致在IE中解释它们的方式引起的问题。 这不是图像问题的渲染这是一个IE逻辑失败的问题。
提前致谢。
答案 0 :(得分:3)
我使用这个css hack来提供IE< 7一个gif文件和其他一切24位png透明。
background-image:url(/images/sprites/icons-sprite.png);
_background-image:url(/images/sprites/icons-sprite.gif); /* IE<7 gets the crappy icons */
IE 6支持gif透明度。
答案 1 :(得分:1)
根据事物的规模确定它会对服务器负载产生多大影响。理想情况下,如果您计划将其作为一个非常大的部署,那么您应该已经采用最合适的标准方法来处理静态内容:缓存标头,静态内容的单独(子)域,反向代理,CDN部署等。
就CSS而言,你要么有像Javascript或间隔图像这样讨厌的黑客来绕过IE6 / 7,要么限制你使用你的页面样式的方式,以便这些问题不存在,因为你没有使用导致他们的事情。这实际上取决于你认为更重要的东西。
答案 2 :(得分:0)
IE 6(可能是IE7,我不确定)有一些奇怪的透明度问题。
查看http://homepage.ntlworld.com/bobosola/index.htm以获取我一直使用的修复程序 - 只需添加一些javascript并将您拥有的任何GIF转换为png。
答案 3 :(得分:0)
看看这篇文章:PNG8 - The Clear Winner 您需要Fireworks才能修复此问题。自从我发现这篇文章以来,我一直都在使用它。主要优点:您不需要为不同的浏览器使用不同的图像。 PNG8对所有人都有好处。