DOCTYPE文档类型常常让老手们困惑,这到底是什么东西。其实这只是一组机器可读的规划,虽然两头包含了文件的URL,但浏览器不会去读取这些文件,只是用于识别。然后决定以什么样的规划去执行页面中的代码。
DTD是指文档类型定义,它们定义XML、XHTML、HTML的特定的某一个版本中,可以有什么,不可以有什么,在载入网页的时候,浏览器会用既定的声明规划去检查页面的内容,是不是无效,是不是违规,然后采取相应的措施与编码解释文档中的代码。
我们不去深入的了解它是什么任务的,由于它曾经超出了本站的范畴。我们必须知道它是非常必要的!缺少了它,我们的页面就可能出现一些异常的情况。往往一个老手编写了代码,按教程进行操作,没有哪里出现一个字母的偏差,却发现显示出来的样子完全不对了。这里应该检查DOCTYPE文档类型是不是正确。大多能处理问题!
我们开发符合Web标准的网站,必需要为我们的XHTML指定一种DOCTYPE,否则CSS可能会使用出错。我们了解一下我们常用的几品种型:
XHTML 1.0 提供了三种DTD声明可供选择:
过渡的(Transitional):要求非常宽松的DTD,它允许你继续使用HTML4.01的标识(但是要符合xhtml的写法)。完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
严厉的(Strict):要求严厉的DTD,你不能使用任何表现层的标识和属性,例如<br>。完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
框架的(Frameset):专门针对框架页面设计使用的DTD,如果你的页面中包含有框架,需求采用这种DTD。完整代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
在普通情况下我们选择“过渡的(Transitional)”,这种DTD比较宽松,也比较容易通过W3C的代码校验,比较适合目前国内的环境与大多数开发人员的水平。当然我们的目标是向着“严厉的(Strict)”方向努力。
除此而外,我们发如今某些文档中,还有另一句代码:
<html xmlns="http://www.w3.org/1999/xhtml" lang="UTF-8">
这个"xmlns"是XHTML namespace的缩写,叫做"名字空间"声明。XHTML是HTML向XML过渡的标识言语,它需求符合XML文档规则,因此也需求定义名字空间。又由于XHTML1.0不能自定义标识,所以它的名字空间都相反,就是"http://www.w3.org/1999/xhtml"。如果你还不太理解也不要紧,目前阶段我们只需照抄代码就可以了。