瀏覽器的標準模式與怪異模式
要想寫出跨瀏覽器的CSS,必須知道瀏覽器解析CSS的兩種模式:標準模式(strict mode)和怪異模式(quirks mode)。所謂的標準模式是指,瀏覽器按W3C標準解析執(zhí)行代碼;怪異模式則是使用瀏覽器自己的方式解析執(zhí)行代碼,因為不同瀏覽器解析執(zhí)行的方式不一樣,所以我們稱之為怪異模式。瀏覽器解析時到底使用標準模式還是怪異模式,與你網(wǎng)頁中的DTD聲明直接相關,DTD聲明定義了標準文檔的類型(標準模式解析)文檔類型,會使瀏覽器使用相應的方式加載網(wǎng)頁并顯示,忽略DTD聲明,將使網(wǎng)頁進入怪異模式(quirks mode)。
quirks mode和strict mode是瀏覽器解析css的兩種模式,或者可以稱之為解析方法。目前正在使用的瀏覽器這兩種模式都支持 。
由于歷史的原因,各個瀏覽器在對頁面的渲染上存在差異,甚至同一瀏覽器在不同版本中,對頁面的渲染也不同。在W3C標準出臺以前,瀏覽器在對頁面的渲染上沒有統(tǒng)一規(guī)范,產(chǎn)生了差異(Quirks mode或者稱為Compatibility Mode);由于W3C標準的推出,瀏覽器渲染頁面有了統(tǒng)一的標準(CSScompat或稱為Strict mode也有叫做Standars mode),這就是二者最簡單的區(qū)別。
W3C標準推出以后,瀏覽器都開始采納新標準,但存在一個問題就是如何保證舊的網(wǎng)頁還能繼續(xù)瀏覽,在標準出來以前,很多頁面都是根據(jù)舊的渲染方法編寫的,如果用的標準來渲染,將導致頁面顯示異常。為保持瀏覽器渲染的兼容性,使以前的頁面能夠正常瀏覽,瀏覽器都保留了舊的渲染方法(如:微軟的IE)。這樣瀏覽器渲染上就產(chǎn)生了Quircks mode和Standars mode,兩種渲染方法共存在一個瀏覽器上。
盒子模型
盒子模型有兩種,分別是 IE 盒子模型和標準 W3C 盒子模型。他們對盒子模型的解釋各不相同, 先來看看我們熟悉的標準盒子模型:
W3C 盒子模型的范圍包括 margin、border、padding、content,并且 content 部分不包含其他部分。
IE 盒子模型的范圍也包括 margin、border、padding、content,和標準 W3C 盒子模型不同的是:IE 盒子模型的 content 部分包含了 border 和 pading。
那應該選擇哪中盒子模型呢?當然是“標準 W3C 盒子模型”了。怎么樣才算是選擇了“標準 W3C 盒子模型”呢?很簡單,就是在網(wǎng)頁的頂部加上 DOCTYPE 聲明。如果不加 DOCTYPE 聲明,那么各個瀏覽器會根據(jù)自己的行為去理解網(wǎng)頁,即 IE 瀏覽器會采用 IE 盒子模型去解釋你的盒子,而 FF 會采用標準 W3C 盒子模型解釋你的盒子,所以網(wǎng)頁在不同的瀏覽器中就顯示的不一樣了。反之,如果加上了 DOCTYPE 聲明,那么所有瀏覽器都會采用標準 W3C 盒子模型去解釋你的盒子,網(wǎng)頁就能在各個瀏覽器中顯示一致了。
table字體繼承
在quirks mode 和 strict mode中還有一個區(qū)別 。 在strict mode 中, table的css屬性font-size會繼承父級元素的 ,也就是說,table中的字體大小會繼承父級元素字體的大小。 在quirks mode 中, table的css屬性font-size不會繼承父級元素的 ,需要專門設置一下。也就是說,table中的字體大小不會繼承父級元素字體的大小。
評論(0人參與,0條評論)
發(fā)布評論
最新評論