众所周知,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