Quirks(怪癖)模式是什麼?它和Standards(標準)模式有什麼區別

IE6開始,引入了Standards模式,標準模式中,瀏覽器嘗試給符合標準的文檔在規範上的正確處理達到在指定瀏覽器中的程度。

IE6之前CSS還不夠成熟,所以IE5等之前的瀏覽器對CSS的支持很差, IE6將對CSS提供更好的支持,然而這時的問題就來了,因爲有很多頁面是基於舊的佈局方式寫的,而如果IE6 支持CSS則將令這些頁面顯示不正常,如何在即保證不破壞現有頁面,又提供新的渲染機制呢?

在寫程序時我們也會經常遇到這樣的問題,如何保證原來的接口不變,又提供更強大的功能,尤其是新功能不兼容舊功能時。遇到這種問題時的一個常見做法是增加參數和分支,即當某個參數爲真時,我們就使用新功能,而如果這個參數 不爲真時,就使用舊功能,這樣就能不破壞原有的程序,又提供新功能。IE6也是類似這樣做的,它將DTD(文檔類型定義)當成了這個“參數”,因爲以前的頁面大家都不會去寫DTD,所以IE6就假定 如果寫了DTD,就意味着這個頁面將採用對CSS支持更好的佈局,而如果沒有,則採用兼容之前的佈局方式。這就是Quirks模式(怪癖模式,詭異模式,怪異模式)。


區別:

總體會有佈局、樣式解析和腳本執行三個方面的區別。

盒模型:在W3C標準中,如果設置一個元素的寬度和高度,指的是元素內容的寬度和高度,而在Quirks 模式下,IE的寬度和高度還包含了padding和border。

 

設置行內元素的高寬:在Standards模式下,給<span>等行內元素設置wdith和height都不會生效,而在quirks模式下,則會生效。

設置百分比的高度:在standards模式下,一個元素的高度是由其包含的內容來決定的,如果父元素沒有設置百分比的高度,子元素設置一個百分比的高度是無效的

margin:0 auto設置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章