在较早之前的网页上,我们经常可以看到如下的网页结构代码:
<html>
<head>
<title>这是一个网页</title>
<meta name=”…” content=”…” />
……
</head>
<body>
……
</body>
</html>
很显然的,这种结构的网页代码是不符合Web标准规范的,但是浏览器仍然可以很好的呈现出这个网页来,只要代码没出什么错误。这个其实就像是用Table布局的页面跟Div构架的页面一样,浏览器都可以呈现出来,关健是哪个页面呈现的质量会更高。
做出一个页面,跟做好一个页面,中间有着很遥远的距离。
在浏览器的发展历程中,微软凭借着将Internet Explorer捆绑进Windows操作系统中,从来成为浏览器市场上的霸主,从而也造成了一系列的IE对W3C组织所制定的Web标准于不顾的事情,微软的IE一直都只遵循自家的Web标准。很庆幸的是,微软决定在他的IE8中支持Web标准,虽然这事还没最终确定。除微软的IE外,Mozilla Firefox、Apple Safari、Opera、Chrome等浏览器则以支持Web标准的名义与IE做得长久的对抗。
浏览器的不同,于是就造成了对HTML代码默认解析的不同,所以即使同样的代码在不同的浏览器下也可能呈现出不同的样式来,于是这就需要有一份众浏览器都遵循的规则来协调众浏览器之间的差异,这份规则需要一个声明来引用它,这个声明就是DOCTYPE——document type(文档类型)。
DOCTYPE声明是标准网页中必不可少的部分,所以,想要制作一个符合W3C标准的网页,首先就需要为这个页面声明一个文档类型。DOCTYPE所声明的DTD(文档类型定义)分为三种,分别是:
Transitional(过渡的):要求不是很严格的DTD,允许你继续在页面中使用HTML4.01的标签;
Strict(严格的):这是制作页面时理想的DTD方式,但是这个文档类型定义不允许使用任何的表现层上的标签和属性;
Frameset(框架的):这个专门针对页面设计中包含有框架的DTD。
由于框架型的设计可能对网页在搜索引擎中收录的影响,很多网页中都不使用框架设计;而Strict的DTD对于大多数人来说还只是一种理想化的方式;Transitional型的DTD则是目前最适用也是使用最广泛的文档类型定义。现在随便打开一个符合Web标准的网页,都可以在页面的最开始处看到这样一句声明:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
这是一个关于XHTML网页文档的DOCTYPE声明。当然并不是说DOCTYPE声明只能针对XHTML网页文档,对于使用HTML4.01的网页文档来说,同样可以使用DOCTYPE声明:
过渡的DTD:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” “http://www.w3.org/TR/html4/loose.dtd”>
严格的DTD:
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>
唯一需要注意的是,DOCTYPE声明的位置必须是位于页面的最开始处,在DOCTYPE声明代码之前不能出现任何的代码或是标签,否则页面中的标签或是CSS样式可能会失效。