Windows Internet Explorer 8 是迄今最符合標準的版本,它完全支持級聯樣式表 (CSS) 級別 2.1,并加強了對 CSS 3、HTML 4.01 的支持,也能很好地支持 HTML 5。由于改進了對這些 HTML 元素的支持,Web 開發人員現在可以構建更具表現力和可訪問的 HTML 標記。本文檔將探討對 Windows Internet Explorer 8 中關于 HTML 和 CSS 支持行為的更改,以及這些更改如何影響 Web 開發人員。 HTML 支持 為了幫助開發人員充分利用 HTML 4.01 提供的元素和更好地解釋 Web 開發人員期望表達的語意含義,Windows Internet Explorer 升級了對下列表示性元素的支持: P 元素:表示邏輯段落。 OBJECT 元素:可以表示任何對象,包括圖像。 P 自動添加元素結束標記 現在,當后面跟隨 TABLE、FORM、NOFRAMES 或 NOSCRIPT 元素時,缺少結束標記的 P 元素會立即自動添加結束標記。 html head title 簡單的 P 元素結束示例 /title meta http-equiv="X-UA-Compatible" content="IE8"/ /head body p 這是第一段 /p p 這是另一段。 !-- P not closed -- table border="1px" cellpadding="2px" tr td 這是一個表格單元格。 /td /tr /table p 這是第三段。 /p
/body /html 在本示例中,第二個 P 元素缺少結束標記。當使用 Windows Internet Explorer 7 查看時,TABLE 元素作為第二個 P 元素的子元素顯示。第二個 P 元素從窗口的左邊距縮進 30 像素。由于 TABLE 是該 P 元素的子元素,它也從該窗口的左邊距縮進。但是,當使用 Windows Internet Explorer 8 的默認模式查看時,TABLE 元素與左邊距對齊。由于 Windows Internet Explorer 8 在顯示 TABLE 元素前自動添加了該 P 元素所缺少的結束標記,因此 TABLE 元素是該元素的子元素。 使用 OBJECT 元素顯示圖像 現在,Windows Internet Explorer 8 可以使用 OBJECT 元素顯示圖像。在舊版本的瀏覽器中使用此元素顯示圖像時,它常常自動將滾動條和邊框添加到圖像中,從而往往導致圖像顯示不正確。 現在,在 Windows Internet Explorer 8 中,OBJECT 元素顯示圖像時就像這些圖像是使用 IMG 元素嵌入的一樣。要在網頁中使用此行為,請將 OBJECT 元素的 DATA 屬性設置為圖像的 URL。您也可以在 DATA 屬性中嵌入 dataURL。 要使 Windows Internet Explorer 將圖像加載到使用舊版本行為的 OBJECT 元素中,請對網頁選擇舊兼容性模式或將 OBJECT 元素的 TYPE 屬性設置為 text/html。 改進的回退對象 當 OBJECT 元素加載資源失敗時,將改為呈現 OBJECT 元素內部的內容。這稱為對象回退,因為它允許您定義 Windows Internet Explorer 在遇到問題進行“回退”時所用的策略。 Windows Internet Explorer 7 引入了此功能以嵌套 OBJECT 元素;即使用多個 OBJECT 元素創建更豐富的回退策略,如以下示例中所示: object data="..." type="silverlight" object data="..." type="windows media file" object data="..." type="image/png" 天哪!一切都糟透了。很抱歉。 /object /object object 此示例使用三個 OBJECT 元素定義一個對象回退策略。它首先嘗試加載 Silverlight 應用程序。如果此操作失敗,則要求使用 Microsoft Windows Media 文件。如果無法加載 Windows Media 文件,則此示例加載一個圖像。 如果您使用 Windows Internet Explorer 7 查看此示例,將會看到此圖像,但是頁面的文檔對象模型 (DOM) 中只有一個 OBJECT 元素,因為 Windows Internet Explorer 7 不會為加載失敗的對象創建 OBJECT 元素。 如果您使用 Windows Internet Explorer 8 查看此示例,將會看到頁面的 DOM 中有包含三個 OBJECT 元素的圖像。由于加載失敗,前兩個 OBJECT 元素處于非活動狀態。不過,您可以使用 JavaScript 搜索這些元素。 注意:如果不刷新頁面或使用 JavaScript 加載新對象,則無法重新激活處于非活動狀態的對象。 Windows Internet Explorer 8 僅將這一新的回退行為用于與通信相關的錯誤,即只在加載請求生成客戶端 HTTP 錯誤響應 (4xx) 或服務器 HTTP 錯誤響應 (5xx) 時發生。如果由于其他原因(如內容格式不正確或 ActiveX 控件損壞)導致請求失敗,將發生原始回退行為。 HTML 5/AJAX 增強功能 Windows Internet Explorer 8 的 HTML 5 增強功能包括 AJAX 導航、DOM 存儲、跨文檔消息傳送 (XDM) 和連接事件。它們是嚴格按照 W3C HTML 5.0 草案開發的。 AJAX 導航 使用 AJAX 的顯著好處之一是無需使用傳統的頁面導航即可更新頁面內容。在某些情況下,使用 AJAX 無法保存頁面狀態,亦無法通知其組件,對此可能會令人疑惑,這是因為地址欄、“后退”和“前進”按鈕等組件只能在頁面導航后進行更新。因此,瀏覽器無法在旅行日志上保存 AJAX 內容更改或更新地址欄等組件。這可能使最終用戶產生迷惑,不知道為什么瀏覽器總是顯示舊內容。在 IE8 模式中,Windows Internet Explorer 像處理導航一樣處理 window.location.hash 更新,并保存早期文檔 URL。 DOM 存儲 現在,網頁使用 document.cookie 屬性將數據存儲在本地計算機上。Cookie 能力有限,因為站點對每個域只能存儲 50 個鍵/值對。此外,Cookie 編程模型很繁瑣,需要分析數據的整個 Cookie 字符串。W3C 的 HTML 5 DOM 存儲對象為鍵/值對字符串數據提供了一個更簡單的全局和會話存儲模型。站點可以在選項卡生命周期內存儲數據或直到網站或用戶清除數據。 每個域,包括其子域,有 10 MB 的本地存儲空間。這有助于降低跨域攻擊的可能性。同樣,每個瀏覽器選項卡也有自己的會話存儲。DOM 存儲只是 Web 應用程序簡化存儲數據的一種機制 — 不使用后臺數據庫。例如,無法執行復雜的查詢,如根據值搜索。 跨文檔消息傳送 (XDM) 瀏覽器的站點源策略阻止網頁從其他域獲得數據。這意味著單個網頁上的不同域不能相互通信,從而無法提供更加豐富的體驗。網站通過創建嵌套的 IFrame 并檢索通過 URL 傳送的數據繞過此策略。網站繞過此策略的另一種方法是直接托管腳本和其他域中的其他資源文件。第二種解決方法只允許單向通信。由于嵌入的腳本和資源使用與托管網站相同的權限運行,還可以訪問用戶的數據(如用戶存儲在 Cookie 中的數據),因此這種方法也存在安全風險。 XDM 提供的 postMessage 方法不顯示在窗口對象中,這就允許不同的域根據給定的相互許可相互通信。XDM 為雙向跨域通信提供了一種機制,比上述解決方法更簡單、更能體現性能驅動。 連接事件 Windows Internet Explorer 8 允許網頁通過 window.navigator.onLine 屬性和聯機/脫機事件檢測瀏覽器何時聯機或脫機。利用這些信息,您就可以使用 DOM 存儲對象啟用大量的脫機方案。例如,如果用戶在登錄到自己的 Live mail 頁后失去了連接,頁面會一直提示用戶將草稿保存在 DOM 存儲中并允許用戶繼續編輯電子郵件?;謴瓦B接時,腳本會檢索電子郵件并將其發送到服務器。 CSS 支持 Windows Internet Explorer 的每個新版本都會增強對 CSS 標準的支持,至今已完全支持 CSS 2.1。下表顯示了 Windows Internet Explorer 8 中支持的各種改進的 CSS 屬性,并與 Windows Internet Explorer 7 進行了比較,內容一目了然。這些表未詳盡列出 Windows Internet Explorer 8 支持的所有 CSS 屬性;只顯示了 Windows Internet Explorer 7 不支持或部分支持,而現在 Windows Internet Explorer 8 支持的 CSS 屬性。 單元格中的“部分”值表示只能在該版本的 Windows Internet Explorer 中部分實現此功能。有關詳細信息,請單擊鏈接查看 MSDN 上該功能的參考頁。 偽類html教程