考虑以下的简单示例代码:与最小宽度儿童事业部IE9 HTML元素调整大小的Bug
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" style=" height:100%; width:100%; background:yellow; " >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IE9 Min-Width Problem</title>
</head>
<body style=" width:100%; height:100%; margin:0; background:green;">
<div style=" position:relative; min-width:300px; max-width:100%; margin:auto; background:red; ">
<div style=" position:relative; min-width:0; max-width:600px; margin:auto; padding:10px; ">
<div style=" position:relative; width:100%; height:600px; background:blue; ">
Page contents go here.
</div><!-- closes content -->
</div><!-- closes inner-wrapper -->
</div><!-- closes outer-wrapper -->
</body>
</html>
我的网站使用类似的代码本,实现了最小和最大宽度的流体页面布局,它在每个浏览器中都能很好地工作,除了惊喜的Internet Explorer。出于某种原因,当您第一次加载页面并将其缩小(或放大)时,HTML元素不会重新调整大小,因此您立即得到一个水平滚动条并且HTML背景在右侧可见。但是,如果刷新页面,则问题完全消失,IE的行为与其他浏览器类似。 仅在页面的第一次初始加载时出现此问题,因此如果刷新页面,则必须离开并返回到该网站。
请注意,这似乎只发生在网页在服务器上时。如果你在本地查看html文件,这个错误不会让它变得丑陋。既然如此,我已经自由地将这段代码上传到我的测试服务器,以便任何人都能够帮助我弄清楚发生了什么。
在http://pace-testing.net84.net
如果人有任何信息可帮助查看网页,我将不胜感激。这包括(1)解决方案(2)解决方法或(3)实现我的目标的更好方法。如果您有任何问题,请告知我,因为我会经常查看这篇文章(我正在把这张头发拉出来,所以我急于修复它)。
其他详细信息:我在Windows 7 32位上运行Internet Explorer 9.0.8。由于XHTML 1.0严格Doctype,浏览器处于Internet Explorer 9标准模式。
我不除非我打开兼容模式(在地址栏中打破了页面图标),否则IE9/W7x64中不会出现这种情况。也许你有没有打开呢? – 2012-08-11 13:32:12
你是对的安德鲁,这是一个有用的信息,谢谢。由于某些原因,IE似乎在这个页面上强制兼容模式。当我关闭它时,它似乎工作正常,但是当我删除站点的compat模式的偏好并回到它时,它仍会进入此模式。有谁知道我可以如何解决这个问题?为什么它这样做是compat模式?我如何指定它永远不会进入compat模式?对不起,但我对IE很少有经验。雅知道,因为这是魔鬼。 :) – Scopace 2012-08-11 13:41:18
@Scopace:你好,我是,有完全相同的问题,不仅与最小宽度,但也与显示:表。正如你在旅游帖子中所说的那样,当我在本地尝试页面时,它可以很好地工作,当来自服务器的时候,这些风格的atribs都不适用。你有没有找到解决你的问题? Thanx – 2012-08-24 13:15:19