说明

写html文档的第一行,是document type的简写,用于声明文档的类型,其中:

  1. DTD是Document Type Definition的简写,意为:文档类型定义,它使用一系列合法的元素来定义文档的结构。因为早期的版本基于SGML,所以需要套用SGML的解析规则。DTD的作用在于定义SGML文档的文档类型以便于浏览器解析。
  2. SGML:
    • “ML”即 “Markup language(置标语言)”。
    • GML,第一代置标语言,是文档能明确将标示和内容分开,所有文件使用同样的标示方法。
    • SGML,在GML的基础上进行了整理,形成了一套非常严谨的文件描述方法。它的组成包括语法定义,DTD,文件实例三部分。SGML 因太严谨规范达500多页,故而不易学、不易用、难以实现,所以在它的基础上又发展出了其他的更易用的置标语言。
    • HTML,抽取了SGML中的一小部分子集,早期规范松散,但是比较易学。
    • XML,也是SGML的一个子集,但是使用比较严格的模式。
    • XHTML,是因为HTML的扩充性不好,内容的表现跟不上时代(如某些化学符号的显示),以及性能问题,官方逐渐趋于严格的模式,所以使用 XML 的严格规则的 XHTML 成了 W3C 计划中 HTML 的替代者。但是在2009年,W3C宣布终止XHMTML2.0的研发,开始一心一意研究HTML5.
    • HTML5,HTML 经过一系列修订,到现在说的 HTML 一般指 HTML 4.01;而现在的 HTML 5 则是 HTML 的第五个修订版,其主要的目标是将互联网语义化,以便更好地被人类和机器阅读,并同时提供更好地支持各种媒体的嵌入。

详细解释

  • HTML5
1
<!DOCTYPE html>

如上所见,这就是HTML5中的文档声明,HTML5简化了这种声明,意在告诉浏览器使用统一的标准即可。

  • HTML 4.01 Strict
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

  • HTML 4.01 Transitional
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

  • HTML 4.01 Frameset
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。