Internet Explorer 8 預設是以 CSS2.1 為標準,為考量可顯示舊語法的網頁,IE8 引進了相容性模式,可以輕鬆將舊版標準轉換成以下三種文件模式:

1. Quirks模式

2. IE7標準模式

3. IE8標準模式

其是以HTML中開頭的DOCTYPE去判別要採用的模式,遇到沒有定義DOCTYPE的HTML網頁或定義陳舊HTML版本的網頁,就會採用Quirks Mode。

◎ 修改每個網頁:在每一個網頁加入相容性模式中繼標籤(放到各網頁的 HEAD 項目中),強制 Windows Internet Explorer 8 以 Windows Internet Explorer 7 的方式呈現網頁。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>

IE=EmulateIE8 IE8的自動判斷                                                        
IE=EmulateIE7 IE7的自動判斷  
IE=5 Quirks Mode  
IE=7 IE7標準模式  
IE=8 IE8標準模式  

◎ 設定伺服器自動修改各網頁:設定伺服器( Web.config 檔案)傳送下列標頭:X-UA-Compatible:IE=EmulateIE7

<?xml version="1.0" encoding="utf-8"?>
<configuration>
   <system.webServer>
      <httpProtocol>
         <customHeaders>
            <clear />
            <add name="X-UA-Compatible" value="IE=EmulateIE7" />
         </customHeaders>
      </httpProtocol>
   </system.webServer>
</configuration>

請注意,出現在網頁實際標記中的中繼相容性模式參數標籤,一定會優先於 HTTP 標頭宣告。

◎ 永久性解決方案
(1) 將相容性模式設為 IE8 Standards 。
(2) 使用條件式註解讓網站依然適用於舊版瀏覽器。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN">
<html>
   <head>
      <title>Test Page</title>
      <meta http-equiv="X-UA-Compatible" content="IE=8"/>
      <!--[if gte IE 8]>
      <style type="text/css">
      body {
       color:#0000ff;
       background-color:#000000;
      }
      </style>
      <![endif]-->
      <!--[if lt IE 8]>
      <style type="text/css">
      body {
       color:#000000;
       background-color:#ffffff;
      }
      </style>
      <![endif]-->
   </head>
   <body>
      <h1>
      <!--[if gte IE 8]>
      Chapter 1.
      <![endif]-->
      First Chapter
      </h1>
      <h1>
      <!--[if gte IE 8]>
      Chapter 2.
      <![endif]-->
      Second Chapter
      </h1>
      Text any version will see.
   </body>
</html>

參考來源:

[msdn] Internet Explorer 8 > 如何立即修正我的網站?

[IE8修練大會] IE8:三種模式,全新感受!

[IE8修練大會] 相容性檢視補遺:相容性檢視列表與非IE瀏覽器的處理

arrow
arrow
    全站熱搜

    tsuozoe 發表在 痞客邦 留言(1) 人氣()