Doctype作用?嚴格模式與混合模式,如何觸發者這兩種模式,區分它們有何意義? 1.1 Doctype作用 <!DOCTYPE>聲明叫做文件類型定義(DTD),聲明的作用為了告訴瀏覽器該文件的類型。讓瀏覽器解析器知道應該用哪個規範來解析文檔。<!DOCTYPE>聲明必須在 HTML 文檔的第一行, ...
Doctype作用?嚴格模式與混合模式,如何觸發者這兩種模式,區分它們有何意義?
1.1 Doctype作用
<!DOCTYPE>聲明叫做文件類型定義(DTD),聲明的作用為了告訴瀏覽器該文件的類型。讓瀏覽器解析器知道應該用哪個規範來解析文檔。<!DOCTYPE>聲明必須在 HTML 文檔的第一行,這並不是一個 HTML 標簽。
1.2 嚴格模式
又稱標準模式,是指瀏覽器按照 W3C 標準解析代碼。
1.3 混合模式
又稱怪異模式或相容模式,是指瀏覽器用自己的方式解析代碼。
如何區分:瀏覽器解析時到底使用嚴格模式還是混雜模式,與網頁中的 DTD 直接相關。
1、如果文檔包含嚴格的 DOCTYPE ,那麼它一般以嚴格模式呈現。(嚴格 DTD ——嚴格模式)
2、包含過渡 DTD 和 URI 的 DOCTYPE ,也以嚴格模式呈現,但有過渡 DTD 而沒有 URI (統一資源標識符,就是聲明最後的地址)會導致頁面以混雜模式呈現。(有 URI 的過渡 DTD ——嚴格模式;沒有 URI 的過渡 DTD ——混雜模式)
3、DOCTYPE 不存在或形式不正確會導致文檔以混雜模式呈現。(DTD不存在或者格式不正確——混雜模式)
4、HTML5 沒有 DTD ,因此也就沒有嚴格模式與混雜模式的區別,HTML5 有相對寬鬆的語法,實現時,已經儘可能大的實現了向後相容。( HTML5 沒有嚴格和混雜之分)
意義:嚴格模式與混雜模式存在的意義與其來源密切相關,如果說只存在嚴格模式,那麼許多舊網站必然受到影響,如果只存在混雜模式,那麼會回到當時瀏覽器大戰時的混亂,每個瀏覽器都有自己的解析模式。