邊做邊學 Internet Explorer 8:瞭解 IE8 相容性技術
我相信所有 Web 開(kāi)發(fā)人員與網(wǎng)頁(yè)設(shè)計(jì)師都對(duì)瀏覽器的相容性十分頭痛,除了不同瀏覽器版本難以掌控外,就連 Internet Explorer 瀏覽器各版本的相容性也一樣難以掌握,不過(guò)從 Internet Explorer 8 開(kāi)始就針對(duì)各版本之間的相容性做出了許多強(qiáng)化,因此在本次的邊做邊學(xué)系列中將會(huì)詳述 Internet Explorer 8 到底內(nèi)建了多少與相容性相關(guān)的技術(shù),而開(kāi)發(fā)人員又應(yīng)如何利用這些特性協(xié)助我們開(kāi)發(fā)出高相容性的網(wǎng)頁(yè)。
目錄
- Internet Explorer 的歷史與相容性
- Internet Explorer 8 的網(wǎng)頁(yè)顯示引擎與支援的標(biāo)準(zhǔn)
- Internet Explorer 8 支援的瀏覽器模式與文件模式
- 關(guān)於 Internet Explorer 8 的 User Agent 字串
- Internet Explorer 8 瀏覽器支援的相容性技術(shù)
- 結(jié)語(yǔ)
Internet Explorer 的歷史與相容性
在 Internet Explorer 5.5 以及更早的版本,由於W3C標(biāo)準(zhǔn)制訂的速度過(guò)慢,無(wú)法因應(yīng)當(dāng)時(shí)蓬勃發(fā)展的網(wǎng)際網(wǎng)路需求,因此當(dāng)時(shí)的 Internet Explorer 版本只有非常少的標(biāo)準(zhǔn)支援,因此幾乎可以說(shuō) Internet Explorer 5.5 之前的瀏覽器與之後推出的瀏覽器幾乎沒(méi)什麼相容性可言。
另一方面來(lái)說(shuō),由於當(dāng)時(shí)的網(wǎng)頁(yè)很難透過(guò)標(biāo)準(zhǔn)的網(wǎng)頁(yè)設(shè)計(jì)法則透過(guò) CSS 進(jìn)行網(wǎng)頁(yè)排版,因此大多網(wǎng)頁(yè)都以 TABLE 來(lái)進(jìn)行版面配置,因此網(wǎng)頁(yè)也十分缺乏彈性,而在這版本之後我們通稱這類無(wú)法與 W3C 標(biāo)準(zhǔn)相容的顯示方式稱為Quirks模式,又稱為相容模式,瞭解 Quirks 這個(gè)名詞對(duì)未來(lái)進(jìn)行相容性網(wǎng)頁(yè)開(kāi)發(fā)會(huì)有些幫助。
Microsoft 在 2001 年推出 Internet Explorer 6 瀏覽器,這個(gè)版本已經(jīng)開(kāi)始利用 DOCTYPE 區(qū)別「標(biāo)準(zhǔn)模式」與「相容模式」的網(wǎng)頁(yè),不過(guò)當(dāng)時(shí)已經(jīng)有不少網(wǎng)頁(yè)使用 Quirks 模式下撰寫(xiě)網(wǎng)頁(yè),並沒(méi)有養(yǎng)成利用標(biāo)準(zhǔn)模式來(lái)開(kāi)發(fā)網(wǎng)頁(yè)的習(xí)慣,因此當(dāng)時(shí)還是很少有頁(yè)面使用「標(biāo)準(zhǔn)模式」設(shè)計(jì)網(wǎng)頁(yè),即便這是將近十年前的事了,不過(guò)至今還是有部分網(wǎng)頁(yè)設(shè)計(jì)師分不清楚「標(biāo)準(zhǔn)模式」與「相容模式」的差異,與使用標(biāo)準(zhǔn)模式開(kāi)發(fā)網(wǎng)頁(yè)所帶來(lái)的效益。
Microsoft 在 2006 年推出 Internet Explorer 7 瀏覽器,這個(gè)版本相較於 Internet Explorer 6 已有大幅增進(jìn) 與 W3C 標(biāo)準(zhǔn)的相容性,如果網(wǎng)頁(yè)設(shè)計(jì)師已經(jīng)養(yǎng)成使用「標(biāo)準(zhǔn)模式」開(kāi)發(fā)網(wǎng)頁(yè)的習(xí)慣,將可有效減少網(wǎng)頁(yè)相容性的問(wèn)題,透過(guò)一些開(kāi)發(fā)技巧即可解決瀏覽器之間的些微差異。
Microsoft 在 2009 年推出 Internet Explorer 8 瀏覽器,這個(gè)版本相較於 Internet Explorer 7 又更加遵循 W3C 所制訂的各式網(wǎng)頁(yè)標(biāo)準(zhǔn),例如 CSS 2.1、標(biāo)準(zhǔn)的 DOM 支援、HTML 4.01 與 XHTML 1.0 標(biāo)準(zhǔn)、通過(guò) ACID2 標(biāo)準(zhǔn)網(wǎng)頁(yè)測(cè)試等等。除此之外,在這個(gè)版本還正式提供了許多更多與不同的 Internet Explorer 瀏覽器版本之間的相容性技術(shù),並同時(shí)支援 Internet Explorer 7 標(biāo)準(zhǔn)檢視、Internet Explorer 8 標(biāo)準(zhǔn)模式、Internet Explorer 8 相容性檢視等不同的瀏覽器模式,以助於網(wǎng)頁(yè)設(shè)計(jì)師與 Web 開(kāi)發(fā)人員能夠利用這些相容性開(kāi)發(fā)技術(shù)進(jìn)行網(wǎng)頁(yè)設(shè)計(jì)與測(cè)試,好讓同樣的網(wǎng)頁(yè)能夠在不同版本的瀏覽器之間能有一致的瀏覽體驗(yàn)。
Internet Explorer 8 的網(wǎng)頁(yè)顯示引擎與支援的標(biāo)準(zhǔn)
Internet Explorer 8 同時(shí)提供 IE7 與 IE8 網(wǎng)頁(yè)顯示引擎,也代表著你在使用 Internet Explorer 8 瀏覽器瀏覽網(wǎng)頁(yè)時(shí),除了可以使用 Internet Explorer 8 的網(wǎng)頁(yè)顯示引擎外,甚至可以模擬出 Internet Explorer 7 瀏覽器在顯示網(wǎng)頁(yè)時(shí)的狀況,這部分是 Internet Explorer 瀏覽器很大的一個(gè)改進(jìn),對(duì)開(kāi)發(fā)人員來(lái)說(shuō)也是一大福音。
而在 Internet Explorer 8 推出時(shí),對(duì) CSS 2.1 (目前 W3C 主流版本) 支援度是業(yè)界最高的,其遵循的項(xiàng)目包括有:
- 遵循 CSS 2.1 的標(biāo)準(zhǔn)
- 遵循 DOM 標(biāo)準(zhǔn)
- 遵循 W3C HTML 標(biāo)準(zhǔn)
- 遵循 ACID2 測(cè)試標(biāo)準(zhǔn)
透過(guò)這些標(biāo)準(zhǔn)的遵循,也代表著網(wǎng)頁(yè)設(shè)計(jì)師或 Web 開(kāi)發(fā)人員也可以參照一個(gè)業(yè)界公認(rèn)的標(biāo)準(zhǔn) (W3C) 來(lái)進(jìn)行網(wǎng)頁(yè)設(shè)計(jì)了,以下是與 IE 相容性的相關(guān)連結(jié):
- Windows Internet Explorer Testing Center
- IE6、IE7、IE8 對(duì) CSS 2.1 的支援語(yǔ)法一覽表
- Internet Explorer 相容性中心
- Internet Explorer 8 Readiness Toolkit
Internet Explorer 8 支援的瀏覽器模式與文件模式
我們已經(jīng)知道 Internet Explorer 8 同時(shí)提供 Internet Explorer 7 標(biāo)準(zhǔn)檢視、Internet Explorer 8 標(biāo)準(zhǔn)模式、Internet Explorer 8 相容性檢視等不同的瀏覽器模式(註:你可按下 F12 開(kāi)啟開(kāi)發(fā)者工具進(jìn)行切換):
除了可以讓你選擇要顯示網(wǎng)頁(yè)的網(wǎng)頁(yè)顯示引擎外,還能指定所謂的「文件模式」,讓使用者可以指定要以什麼方式來(lái)呈現(xiàn)網(wǎng)頁(yè),這部分在 Internet Explorer 7 與 Internet Explorer 8 各有不同的支援模式,分別描述如下:
Internet Explorer 8 的文件模式有三種,分別是:
- Quirks 模式
- Internet Explorer 7 標(biāo)準(zhǔn)
- Internet Explorer 8 標(biāo)準(zhǔn)
Internet Explorer 7 的文件模式則只有兩種如下:
- 1. Quirks 模式
- 2. IE7 模式
關(guān)於 Internet Explorer 8 的 User Agent 字串
由於我們?cè)?Internet Explorer 8 裡可以指定不同的瀏覽器模式, 因此網(wǎng)頁(yè)開(kāi)發(fā)人員就可能需要能夠判斷出使用者到底用什麼瀏覽器進(jìn)行瀏覽,以下是在 Internet Explorer 8 切換不同瀏覽器模式的情況下所送出的 User-Agent 字串:
IE7
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; )
IE8
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0)
IE8相容性檢視
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0)
※補(bǔ)充說(shuō)明:如使用 Internet Explorer 9 瀏覽器可參考以下 User-Agent 字串:
IE9
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
IE9相容性檢視
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0)
Internet Explorer 8 瀏覽器支援的相容性技術(shù)
我們?cè)缙谒_(kāi)發(fā)的網(wǎng)頁(yè)若是針對(duì) Internet Explorer 7 所設(shè)計(jì)的,那麼當(dāng)使用者採(cǎi)用 Internet Explorer 8 瀏覽器進(jìn)行瀏覽時(shí)很有可能會(huì)遇到相容性的問(wèn)題,這種情況 Internet Explorer 8 提供了一些相容性的技術(shù)可幫助使用者或 Web 開(kāi)發(fā)人員能快速解決不同瀏覽器間的相容性問(wèn)題。
在 Internet Explorer 8 瀏覽器支援兩種不同的機(jī)制能讓瀏覽器選擇適合的網(wǎng)頁(yè)顯示引擎,一方面可以讓瀏覽器的使用者指定瀏覽器的版本,另一方面可以讓開(kāi)發(fā)人員透過(guò) Meta Tag 或 HTTP Header 告訴 Internet Explorer 8 瀏覽器應(yīng)該使用何種瀏覽器模式呈現(xiàn)網(wǎng)頁(yè)。
※由使用者決定瀏覽器模式
使用者在瀏覽網(wǎng)站的時(shí)候,若發(fā)現(xiàn)網(wǎng)頁(yè)並不適合以 Internet Explorer 8 瀏覽器進(jìn)行瀏覽,這時(shí)就可以透過(guò)相容性檢視(Compatibility View) 的方式讓網(wǎng)頁(yè)重新改以 Internet Explorer 8 相容性檢視 的方式進(jìn)行網(wǎng)頁(yè)瀏覽,如下圖示,你可以透過(guò) [網(wǎng)頁(yè)] / [相容性檢視] 的方式切換進(jìn)入,或是直接點(diǎn)選網(wǎng)址列旁編的圖示進(jìn)入 Internet Explorer 8 相容性檢視 這個(gè)瀏覽器模式。
這時(shí)如果你有開(kāi)啟開(kāi)發(fā)人員工具的話,就可以看到瀏覽器模式會(huì)自動(dòng)從 IE8 切換至 IE8 相容性檢視:
除了可以這樣手動(dòng)切換外,你也可以透過(guò) Internet Explorer 8 的 “相容性檢視設(shè)定” 功能設(shè)定特定網(wǎng)站網(wǎng)址是否要改以 Internet Explorer 8 相容性檢視 的方式進(jìn)行顯示網(wǎng)頁(yè):
透過(guò) [相容性檢視設(shè)定] 的對(duì)話框,你可以將一些已知有相容性問(wèn)題的網(wǎng)站網(wǎng)址逐一加入自訂的清單中,該對(duì)話框最後的三個(gè)選項(xiàng)可以讓你設(shè)定一些顯示的規(guī)則,其中第一個(gè)選項(xiàng)是「包含來(lái)自 Microsoft 的更新網(wǎng)站清單」,由微軟幫你整理一份已某些知名網(wǎng)站但有 Internet Explorer 8 相容性問(wèn)題的網(wǎng)址清單,而這些清單定時(shí)都會(huì)透過(guò) Windows Update 自動(dòng)更新。
※由開(kāi)發(fā)人員決定瀏覽器模式
身為 Web 開(kāi)發(fā)人員都知道,要教育使用者去點(diǎn)擊一個(gè) 相容性檢視 的按鈕是非常困難的事,如果是在公司內(nèi)部的 Intranet 網(wǎng)站倒是還好,但若你的網(wǎng)站服務(wù)對(duì)象是廣大的 Internet 使用者時(shí)那就不可能一一教育使用者去設(shè)定相容性檢視了。
還好 Internet Explorer 8 也有提供開(kāi)發(fā)人員一個(gè)相容性機(jī)制,可以透過(guò)網(wǎng)頁(yè) Meta Tag 或透過(guò) HTTP Header 告知使用者的 Internet Explorer 8 瀏覽器應(yīng)該如何顯示你所開(kāi)發(fā)的網(wǎng)頁(yè),這樣一來(lái)使用者就不需要先被告知應(yīng)該要用什麼瀏覽器模式進(jìn)行切換,也徹底化解不同瀏覽器之間的相容問(wèn)題。
依照頁(yè)面進(jìn)行規(guī)劃設(shè)定
這方式可以套用在「特定頁(yè)面」中,是以「頁(yè)面」為基礎(chǔ)的調(diào)整,你只要在 <head> 與 </head> 之間加入以下這行 Meta Tag 即可套用完成:
但有一點(diǎn)必須特別注意,這一行 Meta Tag 的宣告必須出現(xiàn)在 <head> ... </head> 之中,而且 <head> 一定要出現(xiàn)在 <body> 之前,才會(huì)正確套用 Internet Explorer 8 相容性檢視,例如:
依照網(wǎng)站進(jìn)行規(guī)劃設(shè)定
如果你的整個(gè)網(wǎng)站都需要做出相同的設(shè)定,更為簡(jiǎn)易的作法是直接調(diào)整 IIS 的設(shè)定,若以設(shè)定 IIS6 為例,你可以在 網(wǎng)際網(wǎng)路資訊服務(wù)(IIS)管理員 中,在站臺(tái)中新增一個(gè)自訂的 HTTP 標(biāo)頭名為 X-UA-Compatible,並且將值設(shè)定為 IE=EmulateIE7 即可完成全站設(shè)定,設(shè)定的示意圖如下:
如果是 IIS7 的話,則可參考以下圖示進(jìn)行設(shè)定:
?
?
?
?
或者,可以直接修改 web.config 的設(shè)定:
結(jié)語(yǔ)
在瞭解 Internet Explorer 8 相容性技術(shù)之後,相信各位對(duì)於 Internet Explorer 8 瀏覽器所支援的相容性技術(shù)有了基本的瞭解,有了這些觀念與技巧後,更能夠讓使用者與 Web 開(kāi)發(fā)人員或程式設(shè)計(jì)師更能快速的讓現(xiàn)有的網(wǎng)站適應(yīng) Internet Explorer 8 瀏覽器的執(zhí)行環(huán)境。
轉(zhuǎn)載于:https://www.cnblogs.com/Nina-piaoye/archive/2012/11/14/2769374.html
總結(jié)
以上是生活随笔為你收集整理的邊做邊學 Internet Explorer 8:瞭解 IE8 相容性技術的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: shell日期处理函数
- 下一篇: 美观实用的标签切换菜单