2009-12-21 125 views
1

我有一个网站(使用PHP)。主要背景是绿色,内容区域是白色的。当切换到另一个页面时(因为它需要几毫秒),在白色接受它之前,背景颜色会闪光。我认为这是因为dom元素被绘制/创建的方式。我尝试使用ob_start();ob_flush();,但没有太多的帮助。如何在加载网页时避免背景色闪烁?

有什么办法可以避免这种情况?

感谢 JJ

+3

听起来像这个问题是浏览器端,可能是你构建HTML/CSS的方式。 您使用哪个浏览器和版本?你能发布一个最小的HTML代码片段来重现这个吗? – Paolo 2009-12-21 14:49:57

回答

1

您可以尝试明确设置大小(高度和宽度)或最小高度为内容的区域。您也可以使用具有白色区域的背景图像。如果您的背景是纯色(或水平渐变),则可以使用1px高的gif,这将是一个非常小的文件大小。但是在第一次加载背景之前,你仍然可能会眨眼睛。

最终,我认为用户习惯于看到这一点。我不认为这是一个大问题,不会花大量时间来解决它。但也许你的老板不同意。

+0

你打它的头..老板不同意。让我检查一下设置高度。谢谢 – user187580 2009-12-21 14:57:40

0

只是猜测,但在你的CSS中,把两个规则放在一个CSS文件中,然后首先将内容区域样式声明,并确保这个CSS文件在任何其他文件之前加载。

0

我不知道这是否是这样,但我看到的是,以避免在IE浏览器没有程式化元素的闪烁问题,有人添加一个空脚本标记,

<script type="text/javascript">//This is necessary to avoid flickering of not stylized items in IE</script> 
0

我个人很喜欢闪。它让我知道一个新的页面实际上已加载。这是反馈。

一位老同事向我介绍了一个鲜为人知的Internet Explorer <meta>标签......可让您在页面之间执行fade transition等操作。

<meta http-equiv="Page-Enter" content="progid:DXImageTransform.Microsoft.Fade(Duration=2)"> 
<meta http-equiv="Page-Exit" content="progid:DXImageTransform.Microsoft.Fade(Duration=2)"> 

这是IE浏览器。