Doctype作用?標准模式與兼容模式各有什么區別?
DOCTYPE是document type(文檔類型)的簡寫,用來告訴瀏覽器的解析器使用哪種HTML或XHTML規范解析頁面。DOCTYPE不存在或格式不正確會導致文檔以兼容模式呈現。
知道多少種文檔類型
HTML 4.01和XHTML 1.0規定了三種文檔類型:Strict(嚴格)、Transitional(過渡)以及Frameset(基於框架)。
為什么HTML5只要寫<!DOCTYPE HTML>
HTML 4.01 基於 SGML,需要對 DTD 進行引用,才能告知瀏覽器文檔所使用的文檔類型 。
HTML 5 不基於 SGML,因此不需要對 DTD 進行引用,但是需要 doctype 來規范瀏覽器的行為。
SGML是標准通用標記語言,簡單的說,就是比HTML,XML更老的標准,這兩者都是由SGML發展而來的。但是,HTML5不是的。
標准模式與兼容模式(怪異模式)各有什么區別?
Standards(標准)模式(也就是嚴格呈現模式)用於呈現遵循最新標准的網頁,而Quirks(兼容)模式(也就是松散呈現模式或者怪異模式)用於呈現為傳統瀏覽器而設計的網頁。
標准模式的排版 和JS運作模式都是以該瀏覽器支持的最高標准運行。
兼容模式中,頁面以寬松的向后兼容的方式顯示,模擬老式瀏覽器的行為以防止站點無法工作。簡單說就是盡可能的顯示能顯示的東西給用戶看。
具體區別:
1.盒模型
在嚴格模式中 :width是內容寬度 ,元素真正的寬度 = width;
在兼容模式中 :width則是=width+padding+border
2.兼容模式下可設置百分比的高度和行內元素的高寬
在Standards模式下,給span等行內元素設置wdith和height都不會生效,而在兼容模式下,則會生效。
在standards模式下,一個元素的高度是由其包含的內容來決定的,如果父元素沒有設置高度,子元素設置一個百分比的高度是無效的。
3.用margin:0 auto設置水平居中在IE下會失效
使用margin:0 auto在standards模式下可以使元素水平居中,但在兼容模式下卻會失效(用text-align屬性解決)
body{text-align:center};#content{text-align:left}
4.兼容模式下Table中的字體屬性不能繼承上層的設置,white-space:pre會失效,設置圖片的padding會失效