HTML文件的基本结构

下面分析编写的第一个HTML文件:

<!-- ↓① DOCTYPE声明开始 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- ↑① DOCTYPE声明结束 -->

<!-- ↓② HTML文件开始 -->
<html>

<!-- ↓③ HTML文件头部开始 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>第一个HTML文件</title>
</head>
<!-- ↑③ HTML文件头部结束 -->

<!-- ↓④ HTML文件主体开始 -->
<body>
Hello, World! 我是第一个HTML文件
</body>
<!-- ↑④ HTML文件主体结束 -->

</html>
<!-- ↑② HTML文件结束 -->

代码中绿色部分标记标识出HTML文件的各组成部分。
通过把文档最小化分析,可以看出一个HTML文档是由4部分组成的:

第一部分
位于文档第一行的DOCTYPE声明,即文档类型声明(Document Type Declaration),用来声明文档的类型及其所遵循的标准规则集。

W3C为HTML4.01指定了3种文档类型定义形式,设计者必须在文档中设置其中一种定义形式。

第一种是Strict DTD(严格的),它包含了HTML所有未被废弃的元素与属性。

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

第二种是Transitional DTD(过渡型),它包含了第一种严密DTD中的所有HTML元素和属性,再加上一些大多数和视觉呈现与样式定义有关的废弃属性。

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

第三种是Frameset DTD(框架),它包含第二种过渡型DTD的所有内容,再加上框架元素和属性。

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

以上各种文档类型声明中的URI地址允许浏览器下载或指向需要的DTD或实体设置。下列(相对)URI指向HTML 4的DTD和实体:

  • "strict.dtd" -- 默认严格DTD
  • "loose.dtd" -- 松散DTD
  • "frameset.dtd" -- 框架文档DTD
  • "HTMLlat1.ent" -- 拉丁-1字符实体
  • "HTMLsymbol.ent" -- 符号实体
  • "HTMLspecial.ent" -- 特殊符号实体
  • 如果不指定文档类型,或者声明不完全或不正确,你的HTML文档不是合标准的HTML文档,并且大部分浏览器会用“怪异模式(Quirks Mode,有时也叫兼容模式(compatible mode))”来处理页面。这意味着浏览器假定所处理的是一个旧式的文档,采用其宽松和宽容的旧式呈现模式。只有采用了正确的HTML文档类型声明的文档才是符合Web标准的有效的HTML文档。于是浏览器才可以在一种遵从标记语言和CSS的既定标准的模式下呈现网页,这种模式称为遵从模式(Compliance Mode)或标准模式(Standards Mode)。

    DOCTYPE声明必须置于HTML文档所有代码之前。
    文档类型声明虽然不是HTML与生俱来的,但是为了推行Web标准化,还是不应该省去的。

    第二部分
    <html></html>告诉浏览器HTML文件的开始和结束,其中还包括<head>…</head>和</body>…</body>标签。HTML文档中的所有内容除了文档类型声明都应该放在这对标签之内。

    第三部分
    <head></head>是网页的头部标记,这对标签之间放的是HTML头部元素,构成网页的头部。

    第四部分

    <body></body>是网页的主体标记,绝大部分网页内容被放在这对标签之内。通常它在</head>标记之后,而在</html>之前。
    以上对HTML文档结构的划分有交叉的地方,一般来说HTML 4文档的基本构成部分有:
    1. 一行HTML版本声明(DTD);
    2. 文档的头部,由head元素执行;
    3. 文档的实际内容,绝大多数情况由body元素完成,也有用frameset的。
    以上三部分之间可以出现空白符(空格、换行符、制表符以及注释语句等),第2和第3部分需包含在html元素中。