1. 程式人生 > >關於HTML(二)---------瀏覽器的標準模式和怪異模式

關於HTML(二)---------瀏覽器的標準模式和怪異模式

詳細 pre 如果 進行 例子 vertical 支持 能夠 要求

標準模式和怪異模式的來由

在HTML與CSS的標準化未完成之前,各個瀏覽器對於HTML和CSS的解析有各自不同的實現,而有很多舊的網頁都是按照這些非標準的實現去設計的。在HTML與CSS標準確定之後,瀏覽器一方面要按照標準去實現對HTML與CSS的支持,另一方面又要保證對非標準的舊網頁設計的後向兼容性。因此,現代的瀏覽器一般都有兩種渲染模式:標準模式怪異模式。在標準模式下,瀏覽器按照HTML與CSS標準對文檔進行解析和渲染;而在怪異模式下,瀏覽器則按照舊有的非標準的實現方式對文檔進行解析和渲染。這樣的話,對於舊有的網頁,瀏覽器啟動怪異模式,就能夠使得舊網頁正常顯示;對於新的網頁,則可以啟動標準模式,使得新網頁能夠使用HTML與CSS的標準特性。

瀏覽器如何確定使用哪種渲染模式

知道了這兩種渲染模式的來由,那剩下的問題就是瀏覽器如何能夠確定應該使用哪種模式了。其實歸根結底就是,瀏覽器如何能將舊網頁與新網頁區分開來。
平常編寫網頁的時候,一般都會見到HTML文檔的頭部會有文檔類型聲明:DOCTYPE。當瀏覽器遇到正確的文檔聲明時,瀏覽器就會啟動標準模式,按照制定的文檔類型標準解析和渲染文檔。而對於舊有的網頁,由於網頁編寫的當時標準還沒有確定,所以一般是不會有文檔類型聲明的。所以,對於沒有文檔類型聲明或者文檔類型聲明不正確的文檔,瀏覽器就會認為它是一個舊的HTML文檔,就會使用怪異模式解析和渲染該文檔。關於DOCTYPE的更詳細說明,請戳這裏 DOCTYPE聲明作用及用法詳解。

標準模式與怪異模式的兩個常見區別

  • 盒模型的處理差異:標準CSS盒模型的寬度和高度等於內容區的高度和寬度,不包含內邊距和邊框,而IE6之前的瀏覽器實現的盒模型的寬高計算方式是包含內邊距和邊框的。因此,對於IE,怪異模式和標準模式下的盒模型寬高計算方式是不一樣的;
  • 行內元素的垂直對齊:很多早期的瀏覽器對齊圖片至包含它們的盒子的下邊框,雖然CSS的規範要求它們被對齊至盒內文本的基線。標準模式下,基於Gecko的瀏覽器將會對齊至基線,而在quirks模式下它們會對齊至底部。最直接的例子就是圖片的顯示。在標準模式下,圖片並不是與父元素的下邊框對齊的,如果仔細觀察,你會發現圖片與父元素下邊框之間存在一點小空隙。那是因為標準模式下,圖片是基線對齊的。而怪異模式下,則不存在這個問題。具體請看這篇文章 CSS深入理解vertical-align和line-height的基友關系。


作者:tsyeyuanfeng
鏈接:https://www.jianshu.com/p/dcab7cde8c04
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請註明出處。

關於HTML(二)---------瀏覽器的標準模式和怪異模式