考慮以下的簡單示例代碼:與最小寬度兒童事業部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