1.浏览器的严格模式和怪异模式产生的原因
由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至在同一浏览器的不同版本中,对页面的渲染也不相同。
在W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异,这个时候页面的渲染规范就称为怪异模式(Quirks mode或者Compatibility Mode);由于W3C标准的推出,浏览器渲染页面有了统一的标准,这个页面的渲染规范就被称为严格模式( Stirct mode 或者 CSScompat 或者 Standars mode)。
W3C标准推出以后,浏览器都开始采用新标准。但随后产生了一个问题,就是如何保证按照以前的网页还能继续浏览。因为以前很多网页都是根据旧的渲染标准编写的,如果采用新的W3C标准进行渲染就会出现异常。为了保证浏览器的兼容性,浏览器都保留了旧的渲染方式(如微软的IE)。这样就导致两种渲染方式(Quircks mode和Strict mode)同时存在于一个浏览器上。
2.解析文档时浏览器使用严格模式(strict mode)还是怪异模式(quirks mode)
浏览器以哪种方式解析文档,主要根据文档的的头部声明来决定,浏览器会通过识别DTD(Document Type Definition,中文意思为“文档类定义”)来采用相对应的渲染模式。具体的方式如下:
1.在W3C标准发布之前编写的网页都是没有DOCTYPE声明的,因此对于没有DOCTYPE声明的网页采用quirks mode(怪异模式)解析
2.对于拥有DOCTYPE声明的网页,什么浏览器采用什么模式,可以