Theme NexT works best with JavaScript enabled

ShunNien's Blog

不積跬步,無以致千里;不積小流,無以成江海。

0%

IE 相容性設定

雖然現在很多網站已經漸漸淘汰一些舊版本的 IE 了,但是幾個月前同事的 IE 還是發生這問題,其原因還是該同事的瀏覽器有調整一些個人設定,所以仔細思考還是應該仔細針對 IE 版本設定好相容性。

IE 的文件模式依照官方說法有三種

  • Standard Mode
    支援最新HTLM5/CSS3/SVG等標準,不過不同版本IE支持程度不同,而且 IE 現在也沒有更新
  • Quirks Mode
    力求相容較早版本瀏覽器的行為
  • Almost-Standards Mode(準標準模式)
    支援最新標準,但保有先前版本的圖形渲染行為

三種模式的官方說明如下:

All versions of Internet Explorer released after Internet Explorer 6 support up to three document modes:

  • Standards mode provides the greatest support for the latest standards, such as HTML5, CSS3, SVG, and others. This is the preferred mode for new public websites.
  • Quirks mode emphasizes compatibility over standards compliance by supporting behavior found in earlier versions of Internet Explorer.
  • Almost-standards mode supports APIs defined by the latest standards while honoring graphic rendering behavior found in earlier browsers.

了解文件模式後,就可以透過切換不同文件模式來相容

修改每個 HTML 頁面

下列 HTML 中繼標籤放到各網頁的 HEAD 項目中 ( 在 TITLE 或 META 之外的標籤前面 ),這會告知 Windows Internet Explorer 以 Windows Internet Explorer 7 的方式呈現網頁

1
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
  • 強制瀏覽器呈現為特定的版本的標準
    <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  • 逗號分隔多個版本,瀏覽器自動挑選其能夠使用的最高版本,如:使用 IE 10 瀏覽就會自動挑選 IE 10
    <meta http-equiv="X-UA-Compatible" content="IE=9,IE=10,IE=11"/>
  • 強制瀏覽器呈現舊版本 IE 的相容
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>
  • 強制瀏覽器呈現當前瀏覽器的最高版本
    <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
  • 用分號分開,它設定為不同版本的兼容級別,IE7、IE9。允許不同層次的向後兼容性:
    <meta http-equiv="X-UA-Compatible" content="IE=7; IE-9"/>

修改 IIS 設定

在針對站台的 HTTP 回應標頭新增 HTTP 標頭名稱為 X-UA-Compatible ,並且設定值即可完成全站設定。

1
2
3
4
5
6
7
8
9
10
11
<?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>

參考資料

歡迎關注我的其它發布渠道