??從IE6開始监婶,引入了Standards模式,標(biāo)準(zhǔn)模式中,瀏覽器嘗試給符合標(biāo)準(zhǔn)的文檔在規(guī)范上的正確處理達(dá)到在指定瀏覽器中的程度惑惶。
??在IE6之前CSS還不夠成熟煮盼,所以IE5等之前的瀏覽器對CSS的支持很差, IE6將對CSS提供更好的支持带污,然而這時的問題就來了僵控,因為有很多頁面是基于舊的布局方式寫的,而如果IE6 支持CSS則將令這些頁面顯示不正常鱼冀,如何在即保證不破壞現(xiàn)有頁面报破,又提供新的渲染機(jī)制呢?
??在寫程序時我們也會經(jīng)常遇到這樣的問題千绪,如何保證原來的接口不變充易,又提供更強(qiáng)大的功能,尤其是新功能不兼容舊功能時荸型。遇到這種問題時的一個常見做法是增加參數(shù)和分支盹靴,即當(dāng)某個參數(shù)為真時,我們就使用新功能瑞妇,而如果這個參數(shù) 不為真時稿静,就使用舊功能,這樣就能不破壞原有的程序辕狰,又提供新功能改备。IE6也是類似這樣做的,它將DTD(文檔類型定義)當(dāng)成了這個“參數(shù)”蔓倍,因為以前的頁面大家都不會去寫DTD悬钳,所以IE6就假定
??DTD是為英文*Document Type Definition,中文意思為“文檔類定義”柬脸。
??如果寫了DTD他去,就意味著這個頁面將采用對CSS支持更好的布局,而如果沒有倒堕,則采用兼容之前的布局方式灾测。這就是Quirks模式(怪癖模式,詭異模式垦巴,怪異模式)媳搪。
?
他們的區(qū)別:
在嚴(yán)格模式中 :給元素設(shè)置的 寬度 = content;在怪癖模式中 :給元素設(shè)置的 寬度 = content+padding+border
-
可以設(shè)置行內(nèi)元素的高寬
- 在Standards模式下,給span等行內(nèi)元素設(shè)置wdith和height都不會生效
- 在quirks模式下骤宣,則會生效秦爆。
-
可設(shè)置百分比的高度
- 在standards模式下,一個元素的高度是由其包含的內(nèi)容來決定的憔披,如果父元素沒有設(shè)置高度等限,子元素設(shè)置一個百分比的高度是無效的
-
用margin:0 auto設(shè)置水平居中在IE下會失效
- 使用margin:0 auto在standards模式下可以使元素水平居中
- 但在quirks模式下卻會失效;
- quirk模式下的解決辦法爸吮,用text-align屬性:
body{text-align:center};#content{text-align:left}
quirk模式下設(shè)置圖片的padding會失效
quirk模式下Table中的字體屬性不能繼承上層的設(shè)置
quirk模式下white-space:pre會失效
?
?
?
(1 )盒模型:
在怪異模式下,盒模型為IE盒模型望门,
而在W3C標(biāo)準(zhǔn)的盒模型中為
(2)圖片元素的垂直對齊方式:
對于inline元素和table-cell元素形娇,標(biāo)準(zhǔn)模式下vertical-align屬性默認(rèn)取值為baseline,在怪異模式下筹误,table單元格中的圖片的vertical-align屬性默認(rèn)取值為bottom桐早,因此在圖片底部會有及像素的空間。
(3)<table>元素中的字體:
CSS中厨剪,對于font的屬性都是可以繼承的哄酝,怪異模式下,對于table元素祷膳,字體的某些元素將不會從body等其他封裝元素中繼承得到陶衅,特別是font-size屬性。
(4)內(nèi)聯(lián)元素的尺寸:
標(biāo)準(zhǔn)模式下直晨,non-replaced inline元素?zé)o法自定義大小万哪,怪異模式下,定義這些元素的width抡秆,height屬性可以影響這些元素顯示的尺寸。
(5)元素的百分比高度:
a:CSS中對于元素的百分比高度規(guī)定如下:百分比為元素包含塊的高度吟策,不可為負(fù)值儒士,如果包含塊的高度沒有顯示給出,該值等同于auto檩坚,所以百分比的高度必須在父元素有高度聲明的情況下使用着撩。
b:當(dāng)一個元素使用百分比高度時,標(biāo)準(zhǔn)模式下匾委,高度取決于內(nèi)容變化拖叙,怪異模式下,百分比高度被正確應(yīng)用赂乐。
(6)元素溢出的處理:
標(biāo)準(zhǔn)模式下薯鳍,overflow取默認(rèn)值visible,在怪異模式下挨措,該溢出會被當(dāng)做擴(kuò)展box來對待挖滤,即元素的大小由其內(nèi)容決定,溢出不會裁減浅役,元素框自動調(diào)整斩松,包含溢出內(nèi)容。