觸屏版
全國(guó)服務(wù)熱線:0571-87205688
登錄
注冊(cè)
客戶中心
關(guān)注云客
瀏覽器的標(biāo)準(zhǔn)模式與怪異模式
要想寫(xiě)出跨瀏覽器的CSS,必須知道瀏覽器解析CSS的兩種模式:標(biāo)準(zhǔn)模式(strict mode)和怪異模式(quirks mode)。所謂的標(biāo)準(zhǔn)模式是指,瀏覽器按W3C標(biāo)準(zhǔn)解析執(zhí)行代碼;怪異模式則是使用瀏覽器自己的方式解析執(zhí)行代碼,因?yàn)椴煌瑸g覽器解析執(zhí)行的方式不一樣,所以我們稱之為怪異模式。瀏覽器解析時(shí)到底使用標(biāo)準(zhǔn)模式還是怪異模式,與你網(wǎng)頁(yè)中的DTD聲明直接相關(guān),DTD聲明定義了標(biāo)準(zhǔn)文檔的類型(標(biāo)準(zhǔn)模式解析)文檔類型,會(huì)使瀏覽器使用相應(yīng)的方式加載網(wǎng)頁(yè)并顯示,忽略DTD聲明,將使網(wǎng)頁(yè)進(jìn)入怪異模式(quirks mode)。
quirks mode和strict mode是瀏覽器解析css的兩種模式,或者可以稱之為解析方法。目前正在使用的瀏覽器這兩種模式都支持 。
由于歷史的原因,各個(gè)瀏覽器在對(duì)頁(yè)面的渲染上存在差異,甚至同一瀏覽器在不同版本中,對(duì)頁(yè)面的渲染也不同。在W3C標(biāo)準(zhǔn)出臺(tái)以前,瀏覽器在對(duì)頁(yè)面的渲染上沒(méi)有統(tǒng)一規(guī)范,產(chǎn)生了差異(Quirks mode或者稱為Compatibility Mode);由于W3C標(biāo)準(zhǔn)的推出,瀏覽器渲染頁(yè)面有了統(tǒng)一的標(biāo)準(zhǔn)(CSScompat或稱為Strict mode也有叫做Standars mode),這就是二者最簡(jiǎn)單的區(qū)別。
W3C標(biāo)準(zhǔn)推出以后,瀏覽器都開(kāi)始采納新標(biāo)準(zhǔn),但存在一個(gè)問(wèn)題就是如何保證舊的網(wǎng)頁(yè)還能繼續(xù)瀏覽,在標(biāo)準(zhǔn)出來(lái)以前,很多頁(yè)面都是根據(jù)舊的渲染方法編寫(xiě)的,如果用的標(biāo)準(zhǔn)來(lái)渲染,將導(dǎo)致頁(yè)面顯示異常。為保持瀏覽器渲染的兼容性,使以前的頁(yè)面能夠正常瀏覽,瀏覽器都保留了舊的渲染方法(如:微軟的IE)。這樣瀏覽器渲染上就產(chǎn)生了Quircks mode和Standars mode,兩種渲染方法共存在一個(gè)瀏覽器上。
盒子模型
盒子模型有兩種,分別是 IE 盒子模型和標(biāo)準(zhǔn) W3C 盒子模型。他們對(duì)盒子模型的解釋各不相同, 先來(lái)看看我們熟悉的標(biāo)準(zhǔn)盒子模型:
W3C 盒子模型的范圍包括 margin、border、padding、content,并且 content 部分不包含其他部分。
IE 盒子模型的范圍也包括 margin、border、padding、content,和標(biāo)準(zhǔn) W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 pading。
那應(yīng)該選擇哪中盒子模型呢?當(dāng)然是“標(biāo)準(zhǔn) W3C 盒子模型”了。怎么樣才算是選擇了“標(biāo)準(zhǔn) W3C 盒子模型”呢?很簡(jiǎn)單,就是在網(wǎng)頁(yè)的頂部加上 DOCTYPE 聲明。如果不加 DOCTYPE 聲明,那么各個(gè)瀏覽器會(huì)根據(jù)自己的行為去理解網(wǎng)頁(yè),即 IE 瀏覽器會(huì)采用 IE 盒子模型去解釋你的盒子,而 FF 會(huì)采用標(biāo)準(zhǔn) W3C 盒子模型解釋你的盒子,所以網(wǎng)頁(yè)在不同的瀏覽器中就顯示的不一樣了。反之,如果加上了 DOCTYPE 聲明,那么所有瀏覽器都會(huì)采用標(biāo)準(zhǔn) W3C 盒子模型去解釋你的盒子,網(wǎng)頁(yè)就能在各個(gè)瀏覽器中顯示一致了。
table字體繼承
在quirks mode 和 strict mode中還有一個(gè)區(qū)別 。 在strict mode 中, table的css屬性font-size會(huì)繼承父級(jí)元素的 ,也就是說(shuō),table中的字體大小會(huì)繼承父級(jí)元素字體的大小。 在quirks mode 中, table的css屬性font-size不會(huì)繼承父級(jí)元素的 ,需要專門(mén)設(shè)置一下。也就是說(shuō),table中的字體大小不會(huì)繼承父級(jí)元素字體的大小。
網(wǎng)站制作如何從細(xì)節(jié)上真正節(jié)省用戶的時(shí)間
WEB前端開(kāi)發(fā)規(guī)范文檔
通過(guò)SWFObject在HTML中插入Adobe Flash
javascript深入理解js閉包
搜索優(yōu)化成熟模式強(qiáng)化網(wǎng)站競(jìng)爭(zhēng)力
百度關(guān)鍵詞排名不在有困惑
SEO:新站如何加快百度收錄速度
SEO必知:靜態(tài)、動(dòng)態(tài)、偽靜態(tài)URL的特點(diǎn)
ASO新版本關(guān)鍵詞覆蓋策略,如何做100個(gè)字符優(yōu)化?
未來(lái)的站內(nèi)SEO優(yōu)化需要做些什么
評(píng)論(0人參與,0條評(píng)論)
發(fā)布評(píng)論
最新評(píng)論