html5系列二-2 : DOCTYPE与渲染模式(二)

html5系列2-2 : DOCTYPE与渲染模式(二)

在2-1中讲到,DOCTYPE标签告知浏览器文档使用哪种 HTML 或 XHTML 规范。这次我们来研究下 HTML 与 XHTML 分别有几种文档类型? 

无论是HTML还是XHTML,DTD 类型一般都分为三种:严格(Strict)、过渡(Transitional)以及基于框架(Frameset)

一、HTML

      HTML 4.01 的三种文档类型声明如下:

      (1)严格(Strict

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

      (2)过渡(Transitional

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

      (3)基于框架(Frameset

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

二、XHTML

      XHTML 1.0 的三种文档类型声明如下:

      (1)严格(Strict

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

      (2)过渡(Transitional

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      (3)基于框架(Frameset)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">


看了上面的6种文档类型后,首先要搞明白的一个问题是:这么一长串的DOCTYPE标签表达的是什么意思?

6种文档类型中最常见也是使用最广泛的是XHTML 1.0 Transitional:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

就以它为例来说明:
       (1)!DOCTYPE后紧跟的是 html 说明了文档的根元素是html。
       (2)PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 这部分表明了该文档类型在公共标识符被定义为"-//W3C//DTD XHTML 1.0 Transitional//EN"的DTD中进行了定义
       (3)"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" 最后这句表示:如果在(2)中找不到DTD,浏览器将使用该 URL 作为寻找 DTD 的位置。

接着再来研究一个问题:这一讲中的6种文档类型怎么触发上一讲中的3种渲染模式呢?
触发机制按渲染类型来分:
        (1)混杂模式:没有使用DTD声明,在该模式下各浏览器的显示效果差异是比较大的,所以不推荐不写DTD声明。
        (2)标准模式:HTML 4.01 Strict 与 XHTML 1.0 Strict的 DTD声明都会触发标准模式。
        (3)准标准模式:HTML 4.01 TransitionalHTML 4.01 Frameset,XHTML 1.0 Transitional,XHTML 1.0 Frameset 的DTD声明都会触发准标准模式。
备注:该博文为原创博文,如果转发请注明出处。(max.li)