考虑以下简单的示例代码:
<!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 Strict Doctype,浏览器处于 Internet Explorer 9 标准模式。