H5新增——html概述
阿新 • • 發佈:2020-07-17
H5
1.DOCTYPE和瀏覽器渲染模式 DOCTYPE,或者稱為 Document Type Declaration(文件型別宣告,縮寫 DTD) 通常情況下,DOCTYPE 位於一個 HTML 文件的最前面的位置,位於根元素 HTML 的起始標籤之前。 因為瀏覽器必須在解析 HTML 文件正文之前就確定當前文件的型別,以決定其需要採用的渲染模式, 不同的渲染模式會影響到瀏覽器對於 CSS 程式碼甚至 JavaScript 指令碼的解析 到目前為止,各瀏覽器主要包含了三種模式。在 HTML5 草案中,更加明確的規定了模式的定義: 傳統名稱 HTML5 草案名稱 document.compatMode 返回值 standards mode(strict mode) no-quirks mode CSS1Compat almost standards mode limited-quirks mode CSS1Compat quirks mode quirks mode BackCompat document.compatMode document.compatMode 屬性最初由微軟在 IE 中創造出來,這是一個只讀的屬性,返回一個字串, 只可能存在兩種返回值: BackCompat:標準相容模式未開啟(怪異模式) CSS1Compat:標準相容模式已開啟(標準模式) 在現代主流瀏覽器中,其實怪異模式的渲染和標準與幾乎標準間沒有太大的差別(ie9+ 谷歌 火狐 ...) ie5.5之前都是ie自己的渲染模式,怪異模式 ie6才開始慢慢支援標準,標準模式,在ie6 中怪異和標準模式的區別最大 ie7 8 9都是基於標準模式升級的,他們理論上存在怪異模式 HTML5提供的<DOCTYPE html>是標準模式,向後相容的,等同於開啟了標準模式, 那麼瀏覽器就得老老實實的按照W3C的 標準解析渲染頁面 一個不含任何 DOCTYPE 的網頁將會以 怪異(quirks) 模式渲染。 2.DTD <!DOCTYPE html> 當 doctype 資訊如上時,表明該頁面是遵守了 HTML5 規範的,瀏覽器會選擇 Standards Mode,這種 doctype 是最推薦的一種, 我們平時設計頁面都應該加上這一個 doctype。 HTML5 不基於 SGML,所以不需要引用 DTD,瀏覽器內部本身有對標籤進行解析渲染驗證的模組 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 當 doctype 如上時,瀏覽器同樣會選擇 Standards Mode,雖然和第一種 doctype 有一些區別,但是幾乎可以認為是一樣的。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 當 doctype 如上時,瀏覽器會選擇 Almost Standards Mode,渲染時和標準會有一些區別 當 doctype 缺失的時候,瀏覽器會選擇 Quirks Mode,這是非常不推薦的方式, 當 doctype上面有註釋,標籤或者空行時,某些瀏覽器都會認為該頁面不具有doctype。 我們應該儘量避免 Quirks Mode,這對一個 web 應用是非常不利的地方。 4.每種doctype在瀏覽器中對應的渲染模式 https://en.wikipedia.org/wiki/Quirks_mode