標準模式與怪異模式的共存緣由及其使用

2021-06-26 15:38:35 字數 1003 閱讀 6645

標準模式是在w3c推出之後才使用的,通過在文件的開頭使用dtd宣告,讓所有瀏覽器統一對**的解析;但這時過去那些不帶dtd宣告的舊網頁沒法瀏覽,此時就需要轉換到怪異模式,讓瀏覽器用自己的方式去解析這些**,也就是說在某些情況下,怪異模式反而能正常顯示,因此標準模式和怪異模式都有各自存在的意義。

如何判斷使用哪種模式:

基本上帶dtd宣告的瀏覽器都會採用標準模式,但也有在極少出現的某些情況下(瀏覽器不能識別的宣告)帶dtd宣告卻使用怪異模式的,比如使用html4以下(不包括html4)的dtd時,瀏覽器採用怪異模式。並且,ie5.5以及之前的版本只支援怪異模式。

其實除上面2種模式外,現在還有一種介於以上2種之間的模式——almost strict mode(近乎標準模式)。現在safari, opera7.5+, ie8, 基於becko的瀏覽器都使用這種模式。

ie6的觸發——在dtd宣告前加上xml宣告

<? version="1.0" encoding="utf-8"?>

所有ie的觸發——在dtd宣告前加上html注釋

只要在dtd宣告前加注釋或者任何標籤即可

xml主要表現在對盒模式(box mode)的解釋中,而基本就是ie5-和ie6+的區別

1.對盒模型中width、height的解析不同:

標準模式:內容的width,如ie8

怪異模式:邊框+內邊距+內容的width,如ie6

2.怪異模式中,內聯元素前後不需要換行

3.盒子裡的內容為空時,無論如何設定寬和高,都顯示0%,it's empty!

4.margin值可為負,padding值不能為負

5.邊框樣式(border-style)預設為none

6.浮動元素未設定寬度時,其寬度會趨於0,壓縮到內容能承受的最小寬度

7.內聯元素的內容只有時,vertical-align的值(如table的單元格的table-cell)

標準模式:預設為baseline

怪異模式:預設為bottom 等。

標準模式和怪異模式

在html與css的標準化未完成之前,各個瀏覽器對於html和css的解析有各自不同的實現,而有很多舊的網頁都是按照這些非標準的實現去設計的。在html與css標準確定之後,瀏覽器一方面要按照標準去實現對html與css的支援,另一方面又要保證對非標準的舊網頁設計的後向相容性。因此,現代的瀏覽器一般...

瀏覽器的怪異模式與標準模式

在html與css的標準化未完成之前,各個瀏覽器對於html和css的解析有各自不同的實現,而有很多舊的網頁都是按照這些非標準的實現去設計的。在html與css標準確定之後,瀏覽器一方面要按照標準去實現對html與css的支援,另一方面又要保證對非標準的舊網頁設計的後向相容性。因此,現代的瀏覽器一般...

瀏覽器的標準模式與怪異模式

由於歷史的原因,各個瀏覽器在對頁面的渲染上存在差異,甚至同一瀏覽器在不同版本中,對頁面的渲染也不同。在w3c標準出台以前,瀏覽器在對頁面的渲染上沒有統一規範,產生了差異 quirks mode或者稱為compatibility mode 由於w3c標準的推出,瀏覽器渲染頁面有了統一的標準 cssco...