唔,奇怪 怎麼沒看到有人在討論這件事。
一開始是在msdn ie開發團隊的部落格上看到這篇文章:Compatibility and IE8 。
A List Apart 這篇 Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8 把來龍去脈講的更詳細。 jQuery 的老大 Jonh Resig 在 Meta Madness 中罵得很兇。
簡單的摘要一下:
我們現在可以藉著在 一開始中設定DOCTYPE 來讓使用者在standand 跟quirk 的成像模式中切換,但是每個瀏覽器實做的標準範疇都不一樣(實做不完全就對了啦~~~),此外標準也一會一直變動。這導致舊的網頁必須跟著修改,像是ie 7 就無法正確呈現某些ie 6 only 的網頁,ie 8 更貼近標準後,有些ie 7 的網頁大概也無法正確呈現。因此原有的兩種模式已經不敷使用。於是他們提出可以藉著設定meta 來告知瀏覽器要用哪個版本的瀏覽器成像引擎來呈現。
以ie 8 為例 可以在meta 中設定要用哪個版本的引擎來render。
像是:
<meta http-equiv=”X-UA-Compatible” content=”IE=8″ />
就會用ie 8的引擎來render。也就是說,以後寫網頁可能需要多加額外這行來指定瀏覽器的版本。聽起來似乎很美好…..不過嘛…..
這篇文章 IE8 Meta Tag, Getting Worse Through Standards 中提到一個問題是我覺得最嚴重的:
If I do not add the meta declaration, IE8 would operate in the old mode.
如果這說法屬實,那大多數的人一定不會去寫這行,因為懶嘛(或是不知道),反正沒問題,就不會去查有什麼問題,下場就是又會做出來一堆舊時代的網頁。我想這還挺嚴重的,根本就是倒退了。如果預設是標準模式,但可以透過這樣來相容,我還覺得合理多。不過這一點也不是長久之計(之前的utf-8編碼就已經搞了一個bom問題了…現在還…),都已經是ie 8 了,為什麼就不能乾脆點把標準完整實做,之後透過指定版本標準的方式來相容(like css2.0, css1.0 這樣),難不成之後ie 8,ie 9,ie 10…. ie 100 全部都實做部份標準? 然後網頁設計師還要去注意每個實做標準不完全的版本…….。搞死人囉~~~~
Posted by jaceju on 一月 28, 2008 at 5:38 午後
Hi CrazyLion:
上面的連結我也收了,不過還沒空整理說… (手邊一堆工作 Orz)
所以能讓我借你這篇總結一下嗎?
萬分感謝~
Posted by CrazyLion on 一月 28, 2008 at 7:15 午後
jaceju大人:
這是我的榮幸,請拿,不要客氣
Posted by SophiaChen on 三月 25, 2009 at 6:17 午後
Thank you, you help me a lot!