DTD(文档类型定义)是一组机器可读的规则,定义XML或HTML特定版本中可以出现哪些东西。
解析网页的时候,浏览器将使用这些规则检查页面的有效性并采取相应的措施。
浏览器通过解析页面的DOCTYPE 声明来了解使用那个DTD,以及使用的是HTML的哪个版本。
DOCTYPE 声明是指 HTML 文档开头处的一行或是两行代码,描述使用哪个DTD。
HTML的历史版本:
HTML 1.0:在1993年6月作为互联网工程工作小组(IETF)工作草案发布。
HTML 2.0:1995年1 1月作为RFC 1866发布,于2000年6月发布之后被宣布已经过时。
HTML 3.2:1997年1月14日,W3C推荐标准。
HTML 4.0:1997年12月18日,W3C推荐标准。
HTML 4.01(微小改进):1999年12月24日,W3C推荐标准。
HTML 5:HTML5是公认的下一代Web语言,极大地提升了Web在富媒体、富内容和富应用等方面的能力,被喻为终将改变移动互联网的重要推手。
DOCTYPE 当前有两种风格:
严格风格(strict)和过渡风格(transitional)
就字面意思理解,过渡DOCTYPE 是为了帮助开发人员从旧的HTML版本过渡到新的版本。所以在HTML4.01 和 XHTML1.0 的过渡版本仍然允许使用已经废弃的元素
严格风格中禁止使用废弃的元素,从而把表现和结构分开。
浏览器模式
浏览器厂商厂商开始创建和标准模式兼容的浏览器时,为了确保向后兼容性。创造出了两种呈现模式:标准模式 和 混杂模式(quirks mode)
标准模式中,浏览器根据规范呈现页面;
在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。混杂模式通常模拟老式浏器的行为以防止老式站点无法显示。
在Mozilla 和Safari 中还有第三种模式,称为“几乎标准模式(almost standards mode)”,除了在处理表格的方式上有一些细微的不同外,这种模式和标准模式相同。
文档声明
HTML5 文档声明
<!DOCTYPE html>
HTML4.01
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
XHTML1.0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML1.1 等同于XHTML1.0 Strict
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">