在HMTL5中页面的最顶端代码就是:
<!DOCTYPE html>
为何要如此定义、书写呢?
首先引入一个概念:文档类型,英译为:Document type,缩写成:doctype.
文档类型有何作用呢?
在计算机世界中存在许多不同文件类型或称为文件扩展名,比如.txt,.log,.doc,.wps,.xml….。计算机根据不同的文档类型来选择相对应的软件对文件进行打开,修改等操作!同样Web世界中存在许多不同的文档,但是Web网页是使用浏览器来打开、渲染、显示,如何才能让浏览器正确地显示文档呢,这就需要了解文档的类型!
HTML有多个不同的版本,只有准确的在页面中指定确切的HTML版本,浏览器才能正确无误的显示HTML页面。这就是<!DOCTYPE>的用处。
<!DOCTYPE> 不是HTML标签,它只是为浏览器提供一项声明,因此它没有闭合/结束标签!
HTML文档类型的种类:
由于历史原因,HTML有着多个版本,目前使用比较广泛的仍然是:
1999制定的HTML 4.01, 2000年制定的XHTML 1.0,2012制定的HTML5。不过需要特别说明的是:HTML5目前只是初稿!
HTML 4.01规定了三种文档类型:Strict, Transitional, 以及Frameset. 中译为:严格版本,过渡版本,以及基于框架的版本!
XHTML 1.0同样也规定的三种文档类型:Strict, Transitional, 以及Frameset. 中译为:严格版本,过渡版本,以及基于框架的版本!
它们名称相同,但是声明的方式,有略微区别!
DOCTYPE的语法: HTML 顶级元素 可用性 “注册组织//类型 标签//定义语言”"URL” .
以下面这个 <!DOCTYPE> 标签为例:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
根元素是 html,
注册组织:W3C,
类型标签:XHTML 1.0 Strict,
定义语言:EN.
URL:http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd。
它在公共标识符被定义为 "-//W3C//DTD XHTML 1.0 Strict//EN" 的 DTD 中进行了定义。浏览器将明白如何寻找匹配此公共标识符的 DTD。如果找不到,浏览器将使用公共标识符后面的 URL 作为寻找 DTD 的位置。
始终要明白:URL只是替补!
Strict:
HTML 4.01: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd"> XHTML 1.0: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Transitional:
HTML 4.01: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " http://www.w3.org/TR/html4/loose.dtd"> XHTML 1.0: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Frameset:
HTML 4.01: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" " http://www.w3.org/TR/html4/frameset.dtd"> XHTML 1.0: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.0与HTML 4.01文档类型声明复杂并且难理解,但是在HTML5中,就简单许多了!!!
注意:虽然规定有三种文档类型,但是在每一张网页中只能同时声明一种规范!
文档类型,在使用集成开发工具时,基本都会自动添加。有时候使用记事本编写HTML代码时,往往会忘记声明文档类型,如果是复杂的页画那么在浏览器显示时就很容易会错排!