<!DOCTYPE html>有什么意义?为什么要在每个HTML中都有用到doctype?

第一次看到这个doctype的时候,很疑惑为什么每一个html文件中都要带上它,这个doctype是要告诉浏览器什么吗?是规定HTML版本的吗?如果规定了一个版本之后之后HTML版本更新我们还需要更新自己项目中的HTML版本吗?doctype存在到底有什么意义?

实际上doctype并没有HTML版本区分的意思,那为什么文档一开头就要写doctype呢?这么写并不是为了给浏览器看而是写给验证器看的,是为了让验证器按照该doctype来验证我们的文档。

浏览器反倒是无所谓的,因为遵循伯斯塔尔法则,在接收的时候必须要开放,因此他不会检查任何格式类型,但验证器会,验证器才会关心格式类型,这就是doctype存在的意义。

而按照HTMLI5 的另一个设计原理,它必须向前向后兼容,兼容未来的HTML版本,不管是 HTML6. HTML7,还是其他版本,都要与当前的HTMLS兼容。因此,把一个版本号放在doctype里面没有多大的意义,对验证器也一样。

但是有一种情况下,使用doctype 会影响到浏览器,这也是为了达到某种特殊的目的才使用doctype。当初微软在引入CSS的时候,走在了标准的前头,他们率先在浏览器中支持CSS,也推出了自己的盒模型。后来标准发布了,但标准中使用了不一样的盒模型。微软想支持标准,但也想向后兼容自已过去推出的编码方式。于是,他们想出了一个非常巧妙的主意,那就是利用有效的doctype 触发标准模式。而不是兼容模型(quiks mode")。这个想法非常巧妙。我们今天也都是在这样做,在向文档中加入doctype时,就相当于声明了使用标准模式,但这并不是发明doctype的本意。这只是为了达到特殊的目的在利用doctype.

HTML5 规范的本质是不追求理论上的完美。HTML5所体现的不是给用户一个简短好记的doctype,好记的doctype也无法适应现在的浏览器,所以doctype不仅从理论上看简短好记,而且在实践中仍然可以触发标准模式。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容