使用文档类型声明的浏览器模式
本课程将帮助我们理解怪异模式和标准模式的区别。 让我们开始吧!
早期的多个网页浏览器并未遵循 CSS 的网页标准。网页作者为了实现预期的页面效果,使用了多种浏览器特有的“怪癖”来编写网页。为支持这些基于“怪癖”构建的网站,现代网页浏览器实现了多种渲染模式,其中包括一种“怪癖模式”。
怪癖模式与标准模式
网页浏览器的布局引擎包含三种模式:怪癖模式、近乎标准模式和完全标准模式。
DOCTYPE 标签可使浏览器以标准模式渲染页面,即按照 CSS 规范进行渲染。在完全标准模式下,HTML 和 CSS 规范定义了页面的行为。而在近乎标准模式中,仅保留极少数的怪癖行为。
当浏览器在页面开头发现过时或缺失的 DOCTYPE 时,会启用怪癖模式。这种模式更兼容旧有的开发实践和旧版浏览器。布局会模拟非标准行为,这对于支持在网页标准广泛普及之前创建的网站至关重要。
模式切换
浏览器通过文档开头的 DOCTYPE 来决定如何渲染 HTML 文档,是采用标准模式还是怪癖模式。为确保页面使用完全标准模式,必须确保文档包含正确的 DOCTYPE。示例如下:
1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>示例页面</title> 6 </head> 7 <body> 8 </body> 9</html>
上例中的 DOCTYPE <!DOCTYPE html> 是最简单且 HTML5 推荐的形式。早期 HTML 标准曾推荐其他形式的 DOCTYPE,但目前所有浏览器(包括较老的 Internet Explorer 6)都会对这一 DOCTYPE 使用完全标准模式。如果使用其他 DOCTYPE,则可能触发近乎标准模式或怪癖模式。
在 HTML5 中,DOCTYPE 的唯一作用是激活完全标准模式。必须确保 DOCTYPE 出现在 HTML 文档的最开头。任何位于 DOCTYPE 之前的元素(如注释)都将在 Internet Explorer 9 及更早版本中触发怪癖模式。