奇怪的 IE8 布局故障 - 为啥正文背景消失了?
Posted
技术标签:
【中文标题】奇怪的 IE8 布局故障 - 为啥正文背景消失了?【英文标题】:Weird IE8 layout glitch - why does the body background disappear?奇怪的 IE8 布局故障 - 为什么正文背景消失了? 【发布时间】:2011-09-03 05:41:30 【问题描述】:这是我什至不知道如何解决的“该死的”问题之一。
我有这个网站:http://www.mojalbum.com,如果你在 IE8 中打开它,它可以正常加载,半秒后布局就会变得混乱。如果您随后调整窗口大小,它将恢复正常。此外,如果您打开开发人员工具并禁用和重新启用 CSS 属性(不管是哪一个),布局也会得到修复。
不幸的是,我不记得这是什么时候开始发生的,所以我不知道我做了什么导致了这种情况。我真的不知道该怎么办。我花了 3 个小时在谷歌上寻找解决方案,但没有任何运气(老实说,我不确定要搜索什么)。
这是乱七八糟的屏幕截图:
它应该是这样的:
我在 Windows 7 上使用 Internet Explorer 8 (v 8.0.7601.17514)。
编辑:我现在已经设法(有点)隔离了问题。如果页面中包含 jQuery (v1.6.1),那么就会发生这种情况。包含 jQuery v1.3.2 不会导致这个问题。
【问题讨论】:
该站点确实存在 html 和 CSS 验证错误。也许清理这些会导致修复?祝你好运。 【参考方案1】:下面的答案现在大部分已经过时了,因为这个问题已经在 jQuery 1.6.2 中得到修复,现在已经有一段时间了。
如果您遇到此问题,只需升级 jQuery 到最新的可用版本。
编辑:
jQuery 出了点问题!
如果我切换到由 Google 托管的 1.6.1,它仍然会中断:http://jsbin.com/epata3/3
如果我将script
移动到head
内部,它可以工作:http://jsbin.com/epata3/4
你是对的,1.6.0 一切正常:http://jsbin.com/epata3/7
???
你的 jQuery 包含有问题。
这个简单的测试用例在 IE8 中以完全相同的方式中断:
在 IE8 中查看: http://jsbin.com/exomi4
背景闪烁红色,然后变为白色。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style>
body
background-color: red;
</style>
</head>
<body>
<script type="text/javascript" src="http://www.mojalbum.com/js.php?f=core/jquery_1.6.1.js,&c=v2"></script>
</body>
</html>
【讨论】:
是的,非常非常有线。如果您不介意,我将使用您的示例来填写错误报告。 好主意。我很想知道这是什么原因。 下一个版本(1.6.2)的bug已经修复,你可以在这里获取修复版本:code.jquery.com/jquery-git.js【参考方案2】:我已将 jQuery 版本恢复到 1.6(从 1.6.1)。这解决了问题。
【讨论】:
以上是关于奇怪的 IE8 布局故障 - 为啥正文背景消失了?的主要内容,如果未能解决你的问题,请参考以下文章
我在外层div里面已经设置了背景颜色为白色,为啥里面的div撑开后,ie8显示的时候背景颜色没有了!