DOCTYPE是对Document type的缩写,说明用XHTML或者HTML是什么版本的。必须出现在标签的前面,不需要关闭标签。
声明不是标签,它指示Web浏览器关于页面使用哪个HTML版本编写的,请始终向HTML文档添加声明,这样浏览器才能获知文档类型,最终如何显示你的Web文档。所以,要想制作符合W3C标准的页面,DOCTYPE声明是必不可少的关键组成部分。
缺少HTML Doctype造成的样式问题
当使用XHTML标准开发的网页,第一行就是:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
这是xhtml的W3C标准。
DOCTYPE指定了HTML文档遵循的文档类型定义(DTD),声明的写法遵循一定的规则,指出阅读程序用什么规则集解释文档中的标记。
规则样式:
语法:
HTML 顶级元素 可用性 “注册//组织//类型//标签//定义// 语言” "URL"
可能值:
(转自:http://www.cnblogs.com/tomatoxml/p/3585741.html)
DTD(例子中的:xhtml1-transitional.dtd)即文档类型定义,包含文档的规划,浏览器根据定义的DTD来解释页面的标示,然后展现出来。
xhtml1.0提供三种DTD声明可供选择:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD//XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
相比xhtml的三种DTD声明和HTML 4.01的三种声明,HTML5 中只有一种声明:
<!DOCTYPE html>
HTML4.01中,声明引用DTD,因为HTML4.01是基于SGML,DTD规定了标记语言的规划,这样浏览器才能正确显示内容,HTML5不是基于SGML的,所以不需要引用DTD。
解释下关于XHTML1.0,HTML 4.0和HMTL5:
XHTML 1.0 是对HTML 4.0按照XML标准要求的改造,是XML风格化的HTML4.01,而HTML5是下一代HTML,用来取代HTML 4.01。W3C 原本确实计划用 XHTML 系列替代 HTML 4.01,但 XHTML 系列实际上只活到了 1.1(1.1 和夭折的 1.2 已经体现出过分 XML 的迹象,而 W3C 的理想其实在疯狂的 XHTML 2 身上,当然,它没能诞生),还没脱离 HTML 4.01 的阴影就死了。还没等 XHTML 兴起,它的地位就被 HTML5 取代了。(摘自http://www.zhihu.com/question/20258628)
在DOCTYPE声明后面的是一个XHTML的命名空间(namespace):
<html xmlns="http://www.w3.org/1999/xhtml">
当需要使用符合XML规范的XHTML文档,则应该在标签中使用xmlns属性。
检查工具:需要检查自己的页面是否符合在DOCTYPE中声明的标准,可以使用W3C提供的验证工具:http://validator.w3.org/