早期的瀏覽器, ie 獨大。這也就導致其很多東西和w3c 的標準有很多不一樣的地方。譬如他有自己才看的懂得自定義tag。
乙個熟悉的名詞--瀏覽器大戰, 形象的刻畫了這期間發生的事情。
ie 的佔用量逐步下降, firefox 和chrome異軍突起, 要不是**在windows 系統, 真不知道ie 是否早就消亡了。原因很簡單, ie的速度等各方面表現都不是很好。
微軟逐漸意識到自己搞自己的是不行的, 在ie 後續的版本中就逐漸的向標準靠攏了。
這樣的話, 問題就來了。新版的ie逐漸接近標準, 而舊版和標準差異又很大, 新版和舊版直接如何相容呢?
總不能說, ie 發布了乙個新版, 原先開發的網頁都無法使用了。為了解決這個問題,微軟在ie8以後加入了所謂的相容性模式,也就是能夠在舊的**使用相容性模式瀏覽,而一切正常,而到比較新的**就用正常模式瀏覽。
特別注意的是, 相容模式是從ie8 才開始有的。也是因為ie8跟ie7有不少不同。
首先說一下 宣告的作用
經常看到的宣告類似:
dtd -文件型別定義.
這是個瀏覽器引擎使用的,dtd 裡面定義的是哪些標籤是這個頁面可以使用的正確的標籤以及這些標籤的結構是怎樣的。
不過html 不符合這個標準,可能無法顯示。
如果沒有指定有效的doctype宣告,大多數瀏覽器都會使用乙個內建的預設dtd。在這種情況下,瀏覽器會用內建的dtd來試著顯示你所指定的標記。對於一些臨時性的、匆忙拼湊的文件(這種文件有許多),你確實可以考慮省略doctype宣告,並接受瀏覽器的預設顯示。
對於相容模式,微軟的給我們的解決方案是設定x-ua-compatible。
x-ua-compatible 標頭不區分大小寫;不過,它必須顯示在網頁中除 title 元素和其他 meta 元素以外的所有其他元素之前的標頭(head 節(可能為英文網頁))中。
語法也很簡單,在html中加入
以上的作用是:
無論是否用dtd宣告文件標準,ie8/9都會以ie7引擎來渲染頁面。
content 除了設定成ie=7, 還可以設定成:
1. content="edge"
windows以最高版本的ie顯示內容。
2. content="ie=emulateie7"
根據 指令確定如何呈現內容。標準模式指令以windows internet explorer 7 標準模式顯示,而 quirks 模式指令以 ie5 模式顯示。與 ie7 模式不同,emulateie7 模式遵循 指令。對於多數**來說,它是首選的相容性模式。
/*或者是*/
或者
1.
2.
IE 相容模式
早期的瀏覽器,ie 獨大。這也就導致其很多東西和w3c 的標準有很多不一樣的地方。譬如他有自己才看的懂得自定義tag。乙個熟悉的名詞 瀏覽器大戰,形象的刻畫了這期間發生的事情。ie 的佔用量逐步下降,firefox 和chrome異軍突起,要不是 在windows 系統,真不知道ie 是否早就消亡了...
IE相容模式
每當我接到 或者是pm和我說 那個 版型怎麼跑掉了 或者說 那個 的頁面連線 ajax 連線 怎麼點下去頁面只顯示圖和文字而其他部份都不見了 通常我會問兩個問題 你是不是用ie?請問你的ie版本是多少?通常來說,對方都是使用ie,而如果使用的是ie7,我只能在心理吶喊 天哪 拜託可不可以公升級或換瀏...
IE相容模式
這個和ie的發展歷程相關,在ie8之前browser基本上屬於ie一家獨大,然後ie就有很多與web standard不一致的地方,比如只有自己才看得懂的tag等。後來由於chrome,ff的橫空出世,使ie感覺到了危機,然後就慢慢地與web standard靠近,但之前按照老標準做的 就會出現問題...