要开始观察HTML元素,从其根源开始比较合理,其实只是近似根源。第1章我们讲到了doctype声明,它是HTML文档的第一个元素。然而,在doctype之后是html元素,它包含了文档里所有其他的HTML元素,也叫作根元素。
根元素是大量标签可选的元素中的一个(表2-3 罗列了其他可选标签的元素)。虽然标签是可选的,但是元素并没有被忽略。可选元素如果被省略了,那么会被隐性包含(body元素是个例外,如果没有页面内容,它会被忽略)。比如,以下是一个完全合法的HTML5文档:
这个例子中,没有出现的html、head、body和p标签在文档解析时会被加上。如果省略doctype声明则甚至可以更短,但那样的话会触发浏览器的怪异模式(关于怪异模式的讨论,请参考第1章的doctype部分)。
说明:要依据HTML5标准来检查自己文档的合法性,一个简单的方法是访问http://html5.validator.nu或http://validator.w3.org,两者都提供了页面,可以根据给出的网站URL、上传HTML文件或直接输入HTML来进行校验。从document type(文档类型)下拉菜单里选中“HTML5 (experimental)”选项,以确保使用最新的标准来校验。
表 2-3 开始和结束标签可选的HTML元素
元素 | 开始标签 | 结束标签 |
---|---|---|
body | 可选 | 可选 |
colgroup | 可选 | 可选 |
dd | 必需 | 可选 |
dt | 必需 | 可选 |
head | 可选 | 可选 |
html | 可选 | 可选 |
li | 必需 | 可选 |
optgroup | 必需 | 可选 |
option | 必需 | 可选 |
p | 必需 | 可选 |
rp | 必需 | 可选 |
rt | 必需 | 可选 |
tbody | 可选 | 可选 |
td | 必需 | 可选 |
tfoot | 必需 | 可选 |
th | 必需 | 可选 |
thead | 必需 | 可选 |
tr | 必需 | 可选 |
虽然上面的代码可以轻易激怒XHTML的忠实“粉丝”,但是最好包括这些可选标签,即使只是为了清晰。虽然HTML5看起来把20世纪的编码又带回来了,但要记住它是在记录实践里已经存在的做法,并不一定是最佳实践,这个很重要。