更新時間:2023-10-06 來源:黑馬程序員 瀏覽量:
從IE6開始,引入了Standards模式,標(biāo)準(zhǔn)模式中,瀏覽器嘗試給符合標(biāo)準(zhǔn)的文檔在規(guī)范上的正確處理達(dá)到在指定瀏覽器中的程度。
在IE6之前C還不夠成熟,所以IE5等之前的瀏覽器對CS的支持很差,IE6將對CSS提供更好的支持,然而這時的問題就來了,因?yàn)橛泻芏囗撁媸腔谂f的布局方式寫的,而如果IE6支持CSS則將令這些頁面顯示不正常,如何在即保證不破壞現(xiàn)有頁面,又提供新的渲染機(jī)制呢?
在寫程序時我們也會經(jīng)常遇到這樣的問題,如何保證原來的接口不變,又提供更強(qiáng)大的功能,尤其是新功能不兼容舊功能時。遇到這種問題時的一個常見做法是增加參數(shù)和分支,即當(dāng)某個參數(shù)為真時,我們就使用新功能,而如果這個參數(shù) 不為真時,
就使用舊功能,這樣就能不破壞原有的程序,又提供新功能。IE6也是類似這樣做的,它將DTD當(dāng)成了這個 參數(shù) ,因?yàn)橐郧暗捻撁娲蠹叶疾粫憽啊盌TD,所以IE6就假定 如果寫了DTD,就意味著這個頁面將采用對CSS支持更好的布局,而如果沒有,則采用兼容之前的布局方式。這就是Quirks模式(怪癖模式,詭異模式,怪異模式)。
區(qū)別:
總體會有布局、樣式解析和腳本執(zhí)行三個方面的區(qū)別。
盒模型:
在W3C標(biāo)準(zhǔn)中,如果設(shè)置一個<span>元素的寬度和高度,指的是元素內(nèi)容的寬度和高度,而在Quirks模式下,IE的寬度和高度還包含了padding和border。
設(shè)置行內(nèi)元素的高寬:在Standards模式下,給等行內(nèi)元素設(shè)置wdith和height 都不會生效而在 quirks 模式下,則會生效。
設(shè)置百分比的高度:在standards模式下,一個元素的高度是由其包含的內(nèi)容來決定的,如果父元素沒有設(shè)置百分比的高度,子元素設(shè)置一個百分比的高度是無效的用margin:0 auto設(shè)置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效。