眾所周知,HTML文檔結構可分為:文檔聲明<!DOCTYPE HTML>、HTML元素(根元素/根標記/根標簽/祖先元素)、head元素、body元素。
文檔聲明是用來通知瀏覽器,目前的文檔正使用哪個HTML版本,如果我們不寫文檔聲明<!DCOTYPE HTML>,那么在瀏覽器渲染生成頁面時,網頁可能會進入怪異模式。所謂怪異模式,就是兼容老頁面。使用瀏覽器自己的方式解析執行代碼,因為不同瀏覽器解析執行的方式不一樣,所以我們稱之為怪異模式。 當然我們要解決這一現象,只需要對文檔進行聲明,告訴他我們現在在使用哪個版本的html即可。當然,還有其他情況也會出現怪異味模式,如:
1. 有過渡/框架dtd沒有URI會導致頁面以怪異模式呈現;?
2. IE中,如果doctype聲明在xml之后,會導致怪異模式。
這樣我們就可以把已經對文檔進行聲明的稱為標準模式,即瀏覽器按W3C標準解析執行代碼。
標準模式呈現的文檔包含完整的DOCTYPE文檔聲明。
借鑒一些標準模式和怪異模式的區別的內容,希望可以更好的幫助理解。區別如下:
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模式下卻會失效。
參考文獻:https://blog.csdn.net/Vivian_jay/article/details/61933580