HTML中 !DOCTYPE 的解释与作用

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


    <!DOCTYPE>标签

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

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

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

    平时我们常用的

<!DOCTYPE html>

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

HTML 4.01 Strict

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

HTML 4.01 Transitional

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd">

HTML 4.01 Frameset

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" 
"http://www.w3.org/TR/html4/frameset.dtd">

(以上来自w3school)

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

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

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

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

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值