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