1. <!DOCTYPE>声明帮助浏览器正确地显示网页。
2. <!DOCTYPE>声明
2.1. html也有多个不同的版本, 只有完全明白页面中使用的确切html版本, 浏览器才能完全正确地显示出html页面。这就是<!DOCTYPE>的用处。
2.2. <!DOCTYPE>不是html标签。它为浏览器提供一项信息(声明), 即html是用什么版本编写的。
3. html版本
3.1. 从Web诞生早期至今, 已经发展出多个html版本:
4. <!DOCTYPE>定义和用法
4.1. <!DOCTYPE>声明必须是html文档的第一行, 位于<html>标签之前。
4.2. 在html 4.01中, <!DOCTYPE>声明引用DTD, 因为html 4.01基于SGML。DTD规定了标记语言的规则, 这样浏览器才能正确地呈现内容。
4.3. html5不基于SGML, 所以不需要引用DTD。
4.4. 请始终向html文档添加<!DOCTYPE>声明, 这样浏览器才能获知文档类型。
4.5. <!DOCTYPE>声明没有结束标签。
4.6. <!DOCTYPE>声明对大小写不敏感, 一般我们使用大写。
5. 常用的DOCTYPE声明
5.1. html 5
<!DOCTYPE html>
5.2. html 4.01 Strict
5.2.1. 该DTD包含所有html元素和属性, 但不包括弃用的元素(比如: font)。不允许框架集(Framesets)。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
5.3. html 4.01 Transitional
5.3.1. 该DTD包含所有html元素和属性, 包括弃用的元素(比如: font)。不允许框架集(Framesets)。这一种被广泛使用。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5.4. html 4.01 Frameset
5.4.1. 该DTD等同于html 4.01Transitional, 但允许框架集内容。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
5.5. xhtml 1.0 Strict
5.5.1. 该DTD包含所有html元素和属性, 但不包括弃用的元素(比如: font)。不允许框架集(Framesets)。必须以格式正确的XML来编写标记。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
5.6. xhtml 1.0 Transitional
5.6.1. 该DTD包含所有html元素和属性, 包括弃用的元素(比如: font)。不允许框架集(Framesets)。必须以格式正确的XML来编写标记。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5.7. xhtml 1.0 Frameset
5.7.1. 该DTD等同于xhtml 1.0 Transitional, 但允许框架集内容。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
6. html5、html 4.01、xhtml元素和有效的DTD
6.1. 下面的表格列出了所有的html5/html 4.01/Xhtml元素, 以及它们会出现在什么文档类型(DTD)中: