標籤:渲染 解釋 作用 自己 標題 保留 -- 識別 曆史
document.compatMode屬性
document.compatMode用來判斷當前瀏覽器採用的渲染方式。
官方解釋:
BackCompat:標準相容模式關閉。
CSS1Compat:標準相容模式開啟。
<!DOCTYPE html>標籤
由於曆史的原因,各個瀏覽器在對頁面的渲染上存在差異,甚至同一瀏覽器在不同版本中,對頁面的渲染也不同。在
W3C標準出台以前,瀏覽器在對頁面的渲染上沒有統一規範,產生了差異(Quirks mode或者稱為Compatibility
Mode);由於W3C標準的推出,瀏覽器渲染頁面有了統一的標準(CSScompat或稱為Strict mode也有叫做Standars
mode),這就是二者最簡單的區別。
W3C標準推出以後,瀏覽器都開始採納新標準,但存在一個問題就是如何保證舊的網頁還能繼續瀏覽,在標準出來以前,
很多頁面都是根據舊的渲染方法編寫的,如果用的標準來渲染,將導致頁面顯示異常。為保持瀏覽器渲染的相容性,使以
前的頁面能夠正常瀏覽,瀏覽器都保留了舊的渲染方法(如:微軟的IE)。這樣瀏覽器渲染上就產生了Quircks mode
和Standars mode,兩種渲染方法共存在一個瀏覽器上。
window.top.document.compatMode://BackCompat:怪異模式,瀏覽器使用自己的怪異模式解析渲染頁面。 //CSS1Compat:標準模式,瀏覽器使用W3C的標準解析渲染頁面。
這個屬性會被瀏覽器識別並使用,但是如果你的頁面沒有DOCTYPE的聲明,那麼compatMode預設就是BackCompat,
這也就是惡魔的開始 -- 瀏覽器按照自己的方式解析渲染頁面,那麼,在不同的瀏覽器就會顯示不同的樣式。
如果你的頁面添加了<!DOCTYPE html>那麼,那麼就等同於開啟了標準模式,那麼瀏覽器就得老老實實的按照W3C的
標準解析渲染頁面,這樣一來,你的頁面在所有的瀏覽器裡顯示的就都是一個樣子了。
這就是<!DOCTYPE html>的作用。
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>這裡是頁面標題</title></head><body></body><script> alert(window.top.document.compatMode)</script></html>
瀏覽結果---->CSS1Compat
<html lang="en"><head> <meta charset="UTF-8"> <title>這裡是頁面標題</title></head><body></body><script> alert(window.top.document.compatMode)</script></html>
瀏覽結果---->BackCompat
<!DOCTYPE html>作用