<!DOCTYPE html>
複製代碼
以上代碼應該都很熟悉,咱們常常在本身的html文件的開頭加上這行代碼,這叫做文檔類型聲明。這行代碼相當重要,由於若是在文檔的開頭沒有文檔類型聲明,則全部瀏覽器都會默認開啓混雜模式,但不一樣瀏覽器在這種模式下的行爲差別很是大,若是不使用某些hack技術,跨瀏覽器的行爲根本就沒有什麼一致性可言。 所以在HTML5中只要加上了上面的那一行代碼,就開啓了標準模式。此時瀏覽器就只能老老實實的按照W3C的標準解析渲染頁面,這樣一來,你的頁面在全部瀏覽器裏顯示的就是一個樣子。html
##擴展 DOCTYPE:一種標準通用標記語言的文檔類型聲明,做用就是告訴標準通用標記語言解析器,他應該用什麼樣的文檔類型定義(DTD)來解析文檔,也就是咱們上面說的聲明文檔的解析類型,避免瀏覽器的怪異模式(按照瀏覽器本身的方式來解析執行代碼,即混雜模式)。 #####原理面試
有一個屬性叫document.compatMode它有兩個值:瀏覽器
document.compatMode屬性會被瀏覽器識別並使用,可是若是你的頁面裏沒有DOCTYPE聲明,那麼compatMode默認爲BackCompat,瀏覽器就會按照本身的方式解析渲染頁面,即混雜模式。bash
關於名稱,由於看到有不少地方說法不一樣,我理解的是這樣的: 標準模式 === 嚴格模式:指瀏覽器按照 W3C 標準解析代碼。 混雜模式 === 怪異模式:指瀏覽器用本身的方式解析代碼。spa