DOCTYPE详解

什么是DTD?

SGML引入了文档类型的概念,并由此引入了文档类型定义(Document Type Definition: DTD)。文档类型定义 (DTD) 实际上就是一套关于标记符的语法规则,它包含了对元素的定义,指出可以在文档中使用哪些标记符, 它们应该按什么次序出现, 哪些标记符可以出现于其它标记符中, 哪些标记符有属性, 等等。属于某种类型的文档,可以通过一个应用程序来解析,检查是否所有的元素都被定义以及元素出现的次序是否正确。属于同一种类别的文档可以按照一致的方式来处理。

什么是DOCTYPE?

document type文档类型的缩写,用来指定XHTML和HTML版本,告知浏览器用什么标准解析这个文档。
DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现

DOCTYPE语法?

语法格式

<!DOCTYPE 顶级元素 可用性 "注册//组织//类型 标签 版本 类型定义//语言" "url">

格式详解

  • ! 表示这不是一个html元素
  • 顶级元素:指定 DTD 中声明的顶级元素类型
  • 可用性:指定正式公开标识符(FPI)是可公开访问的对象还是系统资源。默认PUBLIC,可公开访问的对象。SYSTEM系统资源,如本地文件或URL。
  • 注册:指定组织是否由国际标准化组织(ISO)注册。 + (默认),组织名称已注册。 - 未注册。IETF和(W3C)是非注册的ISO组织。
  • 组织:指定表明负责由 !DOCTYPE 声明引用的DTD的创建和维护的团体或组织的名称,如W3C。
  • 类型:指定公开文本类,即所引用的对象类型。默认DTD。
  • 标签:指定公开文本描述,即对所引用的公开文本的唯一描述性名称。后面可附带版本号。默认HTML。
  • 定义:指定文档类型定义
    • Frameset 一种专门针对框架页面所使用的dtd,当页面中含有框架元素时,就要采用这种dtd。
    • Strict 一种要求不很严格的,允许在html中使用html 4.01的标识,排除所有W3C专家希望逐步淘汰的代表性属性和元素。
    • Transitional 包含除frameSet元素的全部内容。一种要求不很严格的,允许在html中使用html 4.01的标识。
  • 语言:指定公开文本语言,即用于创建所引用对象的自然语言编码系统。该语言定义已编写为 ISO 639语言代码(大写两个字母)。默认EN英语。
  • URL:指定所引用对象的位置

例子

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
//doctype首先根据-//W3C//DTD HTML 4.01 Transitional//EN查找相应引用对象,找不到则使用后面的url(这是永久存在的)

HTML5特殊性

HTML5 不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行);而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

标准模式vs怪异模式?

模式可以通过document.compatMode获得(CSS1Compat标准模式,BackCompat怪异、兼容模式)

怪异模式quirks mode

让IE的行为与(包含非标准特性的)IE5相同。这是一种比较宽松的向后兼容的模式。混杂模式通常模拟老式浏览器的行为,以防止老站点无法工作。PS:浏览器按照自己的方式解析代码

标准模式standards mode

标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行 PS:浏览器按照 W3C 标准解析代码

准标准模式almost standards mode

这种模式下的浏览器特性有很多都是符合标准的,不标准的地方主要体现在处理图片间隙的时候(在表格中使用图片时问题最明显)。

超级标准模式

IE8引入的一种新的文档模式,超级文档模式可以让IE以其所有版本中最符合标准的方式来解释网页内容。
如何触发以上模式详见https://hsivonen.fi/doctype/#handling

转载于:https://www.cnblogs.com/coding-swallow/p/7891429.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值