1. 程式人生 > >DOCTYPE宣告——標準模式與怪異模式的區別

DOCTYPE宣告——標準模式與怪異模式的區別

DOCTYPE宣告:告知瀏覽器如何解析和渲染文件
DTD:文件型別定義

分類方式一

1、標準模式:瀏覽器按W3C標準解析執行程式碼。
① 如果XHTML文件包含完整的DOCTYPE,那麼它一般以標準模式呈現;
② 包含嚴格dtd的doctype和包含過渡dtd和URI的doctype常常導致頁面以標準模式呈現;

2、怪異模式:相容老頁面。使用瀏覽器自己的方式解析執行程式碼,因為不同瀏覽器解析執行的方式不一樣,所以我們稱之為怪異模式。
① 不存在doctype或形式不正確會導致怪異模式;
② 有過渡/框架dtd沒有URI會導致頁面以怪異模式呈現;
③ IE中,如果doctype宣告在xml之後,會導致怪異模式。

3、近標準模式:與標準模式一致,除了在處理下面這種情況時:
如果一個塊級元素除了空白文字(空格,tab等字元)外再無其它內容,則它的高度按0處理;如果有子元素,則它的高度不能比子元素大,無論它的font-size多大。

標準模式與怪異模式的區別
1) 盒模型: IE下標準模式為標準w3c盒模型【content+padding+border+margin】,怪異模式為IE盒模型【content+margin:padding與border包含在content寬高中】
2) 行內元素的垂直對齊:基於 Gecko 的瀏覽器【Mozilla Firefox、HotBrowser、Mozilla Suite、Camino】標準模式對齊至基線,怪異模式對齊至底部
3) 怪異模式中,IE6/7/8都不認識!important宣告
4) 設定行內元素的高寬: 在Standards模式下,給等行內元素設定wdith和height都不會生效,而在quirks模式下,則會生效。
5) 使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效。

分類方式二

1、嚴格模式:一種要求嚴格的DTD,不允許使用任何表現層的標識和屬性。嚴格的DTD的寫法如下:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

2、過渡模式:一種要求不很嚴格的DTD,允許在頁面中使用HTML4.01的標識(符合xhtml語法標準)。過渡的DTD的寫法如下:

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

3、框架模式:一種專門針對框架頁面所使用的DTD,當頁面中含有框架元素時,就要採用這種DTD。框架的DTD的寫法如下:

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"
>