2009年02月22日
IE8 layout mode & compatibility view
如果我對 IE 官方 blog 的理解沒有錯誤的話,IE8 的作法是值得稱讚的。
IE8 有三種 layout 模式: 古怪模式(Quirks mode)、IE7標準模式(IE7 Standards mode)、IE8標準模式(IE8 Standards mode)。
瀏覽器會依照文件的 DOCTYPE 選擇依照哪種 layout 模式(目前的IE就是如此,古怪模式不是IE8新增的)預設是IE8標準模式/古怪模式。
已知的標準 DOCTYPE 和未知的 DOCTYPE → 觸發IE8標準模式
古怪 DOCTYPE(基本上HTML 3.0以下)和沒有 DOCTYPE → 觸發古怪模式
相容檢視(Compatibility View)這個功能是什麼呢?對開發者來說就是你的網頁還不夠標準;對使用者來說就是把你的IE8變成IE7。網址列旁邊有一個按鈕,圖樣是破裂的網頁,按了就進入相容檢視。在相容檢視下,瀏覽器還是會依照 DOCTYPE 選擇 layout 模式,只是變成:IE7標準模式/古怪模式。然後 user agent string 也會變成 compatible; MSIE 7.0,大概可以說這是官方內建的偽裝功能。這次媒體報導所說的不相容網站是怎麼回事呢?IE8有個相容檢視列表功能,裡面列出要使用相容檢視的網站,類似釣魚網站名單一樣,可以更新。所以這個列表是不相容於預設的IE8而必須模擬IE7去瀏覽的網站,然後這個功能預設是沒有開啟的(想要的話安裝時自行勾選),就是說預設不會自動觸發IE7標準模式(想開啟要多按個鈕)。最後,網頁開發者可以用meta tag指定用哪種 layout 模式。
指名IE8 → 觸發IE8標準模式
指名IE7 → 觸發IE7標準模式
模擬IE7 → 依照DOCTYPE選擇IE7標準模式/古怪模式
IE8 有三種 layout 模式: 古怪模式(Quirks mode)、IE7標準模式(IE7 Standards mode)、IE8標準模式(IE8 Standards mode)。
瀏覽器會依照文件的 DOCTYPE 選擇依照哪種 layout 模式(目前的IE就是如此,古怪模式不是IE8新增的)預設是IE8標準模式/古怪模式。
已知的標準 DOCTYPE 和未知的 DOCTYPE → 觸發IE8標準模式
古怪 DOCTYPE(基本上HTML 3.0以下)和沒有 DOCTYPE → 觸發古怪模式
相容檢視(Compatibility View)這個功能是什麼呢?對開發者來說就是你的網頁還不夠標準;對使用者來說就是把你的IE8變成IE7。網址列旁邊有一個按鈕,圖樣是破裂的網頁,按了就進入相容檢視。在相容檢視下,瀏覽器還是會依照 DOCTYPE 選擇 layout 模式,只是變成:IE7標準模式/古怪模式。然後 user agent string 也會變成 compatible; MSIE 7.0,大概可以說這是官方內建的偽裝功能。這次媒體報導所說的不相容網站是怎麼回事呢?IE8有個相容檢視列表功能,裡面列出要使用相容檢視的網站,類似釣魚網站名單一樣,可以更新。所以這個列表是不相容於預設的IE8而必須模擬IE7去瀏覽的網站,然後這個功能預設是沒有開啟的(想要的話安裝時自行勾選),就是說預設不會自動觸發IE7標準模式(想開啟要多按個鈕)。最後,網頁開發者可以用meta tag指定用哪種 layout 模式。
指名IE8 → 觸發IE8標準模式
指名IE7 → 觸發IE7標準模式
模擬IE7 → 依照DOCTYPE選擇IE7標準模式/古怪模式