首頁(yè)技術(shù)文章正文

Quirks模式是什么?它和Standards模式有什么區(qū)別?

更新時(shí)間:2023-10-06 來(lái)源:黑馬程序員 瀏覽量:

從IE6開(kāi)始,引入了Standards模式,標(biāo)準(zhǔn)模式中,瀏覽器嘗試給符合標(biāo)準(zhǔn)的文檔在規(guī)范上的正確處理達(dá)到在指定瀏覽器中的程度。

在IE6之前C還不夠成熟,所以IE5等之前的瀏覽器對(duì)CS的支持很差,IE6將對(duì)CSS提供更好的支持,然而這時(shí)的問(wèn)題就來(lái)了,因?yàn)橛泻芏囗?yè)面是基于舊的布局方式寫(xiě)的,而如果IE6支持CSS則將令這些頁(yè)面顯示不正常,如何在即保證不破壞現(xiàn)有頁(yè)面,又提供新的渲染機(jī)制呢?

在寫(xiě)程序時(shí)我們也會(huì)經(jīng)常遇到這樣的問(wèn)題,如何保證原來(lái)的接口不變,又提供更強(qiáng)大的功能,尤其是新功能不兼容舊功能時(shí)。遇到這種問(wèn)題時(shí)的一個(gè)常見(jiàn)做法是增加參數(shù)和分支,即當(dāng)某個(gè)參數(shù)為真時(shí),我們就使用新功能,而如果這個(gè)參數(shù) 不為真時(shí),

就使用舊功能,這樣就能不破壞原有的程序,又提供新功能。IE6也是類似這樣做的,它將DTD當(dāng)成了這個(gè) 參數(shù) ,因?yàn)橐郧暗捻?yè)面大家都不會(huì)去寫(xiě)“”DTD,所以IE6就假定 如果寫(xiě)了DTD,就意味著這個(gè)頁(yè)面將采用對(duì)CSS支持更好的布局,而如果沒(méi)有,則采用兼容之前的布局方式。這就是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)容來(lái)決定的,如果父元素沒(méi)有設(shè)置百分比的高度,子元素設(shè)置一個(gè)百分比的高度是無(wú)效的用margin:0 auto設(shè)置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會(huì)失效。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!