Firefox - 透明png采用CSS背景属性,而firefox是刷新缓存图像

时间:2012-03-15 20:08:56

标签: html css firefox

在图像繁重的网站上工作,在Firefox中发现了一个奇怪的错误(?)。任何CSS背景属性都呈现在透明的png上。它在缓存刷新期间在初始渲染之后发生。如果您正在使用宽带,这会显示为闪烁,但在缩小带宽时会变得非常明显。

问题的一般进展似乎是:

  1. 从缓存中呈现的页面和图像
  2. Firefox删除缓存的图像。
  3. Firefox开始重新加载图片,但会显示一个包含背景CSS属性的框。
  4. 我重新创建了一个(非常多彩的)example,但您可能需要使用fiddler或带有带宽限制/仿真的其他程序来查看闪烁以外的任何内容。显然,您还必须加载一次然后刷新以体验错误。而且,这只是在Firefox中。

    我尝试过各种各样的建议,但都没有。只需要一个修复,黑客就会工作,只要它们不会影响其他浏览器。

    编辑:这是video,所以你可以看到它的实际效果。

1 个答案:

答案 0 :(得分:0)

由于我无法使用我的特定硬件(可能是也可能不是此问题的一部分)在我的计算机(Win 7)上的Firefox(10.0.2)上重新创建该问题,因此我提供以下 < em>作为猜测 在一个解决方案中,虽然我会假设你已经尝试过了。

定位您遇到问题的img代码(最好是某些css比下面更具体),并尝试设置以下内容之一:

或者:

img {background-color: transparent;}

或者:

img {background-color: transparent !important;}

更新:另一种可能的解决方法

让javascript使相关的img标签不可见以启动并将事件绑定到它们,以便在加载时它们再次可见(JQuery示例):

$('img').css('visibility', 'hidden'); /*not using "display" keeps layout*/
$('img').bind('load', function() {
    $('img').css('visibility', 'visible');
});

我无法测试上述情况,所以不能保证它会起作用,但这是另一个想法。