小议关于前端HTML的DTD(文档类型定义)
##什么是文档类型定义(Document Type Defination)DTD?
DTD 是用来定义XML文档结构的(HTML可以看做是XML的一种应用,其中DTD作为标准被保留了下来),规定了XML文档的元素和属性的使用与相互关系。
由于历史原因(浏览器的竞争),很多浏览器对HTML的解释是相当混乱的,并不符合规定的HTML的标准写法。浏览器如果不严格遵循标准来解析页面 则会让网页不能正常的按照我们的想法被展示。到IE5时,尝试通过检查文档类型的定义来确定代码是否符合标准,如果达到标准就正常解析,如果未按规定的标准 则会使用“quirks模式”按照自己的方式来呈现页面。
所以我们在编写HTML代码时应该加入DTD,告诉浏览器页面所遵循的DTD与已经使用的HTML版本,才能保证我们的网页能被正常解析。
到HTML4.0时 有以下3种DTD 这里直接上图片了
文档类型定义与文档类型声明的区别?
文档类型定义是以上提的DTD(Document Type Defination),像在文档中使用以下任意一种 就称为文档类型声明。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3c.org/TR/html4/strict.dtd"/*文档类型声明**/
也就是说文档类型声明可以包含(内部DTD子集)或引用(外部DTD子集)一个文档类型定义。