瀏覽器標準模式與怪異模式-CSS1Compat and BackCompat
由於歷史的原因,各個瀏覽器在對頁面的渲染上存在差異,甚至同一瀏覽器在不同版本中,對頁面的渲染也不同。在W3C標準出臺以前,瀏覽器在對頁面的渲染上沒有統一規範,產生了差異(Quirks mode或者稱為Compatibility Mode);由於W3C標準的推出,瀏覽器渲染頁面有了統一的標準(CSScompat或稱為Strict mode也有叫做Standars mode),這就是二者最簡單的區別。
W3C標準推出以後,瀏覽器都開始采納新標準,但存在一個問題就是如何保證舊的網頁還能繼續瀏覽,在標準出來以前,很多頁面都是根據舊的渲染方法編寫的,如果用的標準來渲染,將導致頁面顯示異常。為保持瀏覽器渲染的兼容性,使以前的頁面能夠正常瀏覽,瀏覽器都保留了舊的渲染方法(如:微軟的IE)。這樣瀏覽器渲染上就產生了Quircks mode和Standars mode,兩種渲染方法共存在一個瀏覽器上。
BackCompat 對應quirks mode
CSS1Compat 對應strict mode
BackCompat:標準兼容模式關閉。
CSS1Compat:標準兼容模式開啟。
在Standars mode中:
元素真正的寬度 = margin-left + border-left-width + padding-left + width + padding-right + border-right-width + margin-right;
在Quirks mode中:
width則是元素的實際寬度,內容寬度 = width - (margin-left + margin-right + padding-left + padding-right + border-left-width + border-right-width);
在js中如何判斷當前瀏覽器正在以何種方式解析?
window.top.document.compatMode
如何設置為怪異模式:
方法一:在頁面項部加 <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
方法二:什麽也不加。
如何設置為標準模式:
加入以下任意一種:HTML4提供了三種DOCTYPE可選擇:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Frameset//EN” “http://www.w3.org/TR/html4/frameset.dtd”>
瀏覽器標準模式與怪異模式-CSS1Compat and BackCompat