想要知道某个网页是由哪个HTML版本编写的,其实很简单,看源码最前面每个页面都要有的、但是看也看不懂的、老师还不一定讲的那一坨代码就行了。
HTML 版本 | |
HTML 5 | <!DOCTYPE html> |
HTML 4.01 Strict | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。 |
HTML 4.01 Transitional | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。 |
HTML 4.01 Frameset | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。 |
XHTML 1.0 Strict | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。 |
XHTML 1.0 Transitional | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。必须以格式正确的 XML 来编写标记。 |
XHTML 1.0 Frameset | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">该 DTD 等同于 XHTML 1.0 Transitional,但允许框架集内容。 |
XHTML 1.1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">该 DTD 等同于 XHTML 1.0 Strict,但允许添加模型(例如提供对东亚语系的 ruby 支持)。 |
这代码由来是DTD标准,DTD标准可以理解成一种语法,这种语法规定了标签嵌套的规则,不同的DTD文件说明不同的标准DTD。比如有的DTD可以承认<baidu>百度</baidu>这种标签,但html专用的DTD文件(如:http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd)写的标准不能识别<baidu></baidu>这种标签,xml文件和html文件一样由DTD文件指定规则。xml是一种只负责信息内容的文件,DTD负责信息的结构,xml可以用指定的DTD文件校正,保证xml不会乱来,这和html文件linkcss有点相似。xml和css结合可以呈现网页,css单纯通过xml个性标签来识别,xml标签<A>对应css中A:{} 。而html一般能特别指定样式,标签style、class、ID属性等,但css中的p:{}这种通用标签属性写法也是从xmll+css标准传承下来的。因为html由W3C指定的有限的几个DTD文件限定,所以成为html,但xml可以由任何自写的DTD文件限定信息结构,所以可以简单认为html是xml的特例,但目前html已经不仅仅是xml延续这么简单了,增加了很多东西,但是html中看到了xml的影子,因为XML更贴近DTD。
理解这一点,以下是这段代码意思:
<!DOCTYPE 这是xml指定DTD文件的语法标签,就像html链接外部css用到的<link 标签一样,但<!DOCTYPE属于xml解释器的内置规则(类似C语言编译器内置C语言语法),而<link 是用DTD文件指定的规则,这个两个还是不一样的。
html 这个是指定当前文件最外层标签,xml里面叫root(根)标签,如果是xml中用<!DOCTYPE 指定DTD,这可以指定为任何字符串,只要对应当前xml文件的root标签,否则就是不合法的xml文件,就像不合法的C程序一样,解释器也会报错。
PUBLIC 说明指定的DTD文件是公共文件,相对私有文件来说的,也就是后面的url是任何人都可以访问的,比如可以是SYSTEM。
"-//W3C//DTD XHTML 1.0 Transitional//EN" 指定本html文件使用的DTD的版本号,这个部分只是针对html才有的。
W3C 指的是出品的单位。
DTD XHTML 1.0 是指定版本号,其他还有html 4.01等。
Transitional 这里是过渡型版本,一般分Strict(严格)、Transitional、Frameset(框架)。
EN 应该是English的缩写,没有具体查实
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 指定DTD文件位置,在xml中还可以是相对路径、绝对路径