HTML中 !DOCTYPE 的解释与作用

    最近在练习html和css练习题时,会发现有很多细节性的东西,以前都没有注意到,虽然会敲代码,但是理论性的知识掌握得不牢固,所以重新学习了一下以前因为急于求成忽略的一些东西。


    标签

     这个虽然每次都会写到,写在html文档的第一行,但平时并没有深究过。

    在w3school上是这么解释的:声明不是HTML标签,指示web浏览器关于页面使用哪个HTML版本进行编写的指令;在 HTML 4.01 中, 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。HTML5 不基于 SGML,所以不需要引用 DTD。

    简而言之,规定了浏览器文档使用哪种html或者xhtml规范

    平时我们常用的

这就是html5的声明,在html4.01里面有三种声明方式

HTML 4.01 Strict

该 DTD 包含所有 HTML 元素和属性,但不包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

HTML 4.01 Transitional

该 DTD 包含所有 HTML 元素和属性,包括展示性的和弃用的元素(比如 font)。不允许框架集(Framesets)。

 
  

HTML 4.01 Frameset

该 DTD 等同于 HTML 4.01 Transitional,但允许框架集内容。

 
  

(以上来自w3school)

不同文档模式主要影响CSS内容的呈现,尤其是浏览器对盒模型的解析

    说了这么多,那DTD到底是个啥东西呢??

    DTD:Document Type Definition,中文翻译为:文档类型定义。DTD可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。因为早期的版本基于SGML,所以需要套用SGML的解析规则。DTD的作用在于定义SGML文档的文档类型以便于浏览器解析。

    随着技术的进步,现在HTML5 不基于 SGML,所以也就不需要引用 DTD了

    如果没有声明,那么不同的浏览器将会以自己不同的怪异的模式去解析渲染页面,这样页面在不同的浏览器上呈现出来的效果也就不一样,人们把这称之为“怪异模式”。

    但是如果声明了,将会开启“严格模式”,又有人称之为“标准模式”,浏览器将已w3c标准来解析渲染页面。

你可能感兴趣的:(网页前端)