首先我们来了解一下什么是文档声明

文档声明就是文档告诉游览器该以什么样的标准去解析它。游览器可以解析的文档可不止html,还有xhtml,xml...当然在这里我们并不需要知道xhtml、xml是什么以及和html的区别,我们只需要知道,游览器可以解析的文档不止html ,所以文档声明是必须的,为的就是保证游览器能够正确解析文档类型。

然后我们再来了解下html(Hyper Text Markup Language)<超文本标记语言>:

所谓的超文本就是超级文本,或者超越文本的意思,因为它可以呈现图片,音乐甚至是音频,普通的文本当然就是只能呈现文字,标记你可以理解为就是标签<a><div>等,在一个文档里通过标签(标记)去对文档进行分类整理。至于语言,当然就是交流的工具,超文本标记语言就是供人和游览器交流的语言。

xhml,xml 各是什么语言我就不做赘述了,总之游览器都能识别他们,但是他们都有各自的文档规则,甚至同种语言不同版本的文档规则也有差别,下面给出部分文档的声明:

1.XHTML1.1

 语法:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

2.XHTML 1.0 Frameset

语法:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

3.XHTML 1.0 Transitional

语法:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

4.XHTML 1.0 Strict

语法:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

5.HTML 4.01 Frameset

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

6.HTML 4.01 Strict

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

其中 Frameset(框架) strict(严格) transitional (过渡),在这里我们只需要知道是用来给文档划分使用条件的,比如使用strict的类型声明的文档,游览器解析起来就会更加严格

我们可以看到<!doctype html 后面跟了一大串屎一样的的尾巴,这个尾巴就是DTD.

那么什么是DTD?

其实xhtml html(html5 之前),还有xml 都是基于一个标准或语言制定的,这个标准就是sgml(standard gernerate makeup laugue)<标准通用标记语言>,你可以把这个语言当做xhtml html(h5 以前)xml的母亲,而sgml 有一个DTD(document type definition) <文档类型申明>用来区分这些语言,游览器对于每一个DTD 都有一整套制定好的规则,用来帮助解析文档。。

最后到了我们的html5了。html5则一反常态直接脱离sgml ,自己形成了一套标准。这套标准目前已经被几乎所有游览器收录,而html5的文档声明很简单:只有<! doctype html>

那么对于那些没有收录html5标准的游览器,当遇到html5的声明会如何处理呢?

其实几乎所有版本的游览器都有处理文档头不正确的方法,对于识别不了的文档头则当做不正确处理,针对缺失的不正确的文档头游览器都有自己的默认兼容模式去解析文档

html5的文档申明为什么是<!DOCTYPE html>?的更多相关文章

  1. HTML5的文档结构和新增标签

    一.HTML5 文档结构1.第一步:打开 开发工具,打开指定文件夹:2.第二步:保存 index.html 文件到磁盘中,.html 是网页后缀:3.第三步:开始编写 HTML5 的基本格式.< ...

  2. HTML学习笔记4:文档申明和编码标签

    ①文档申明     作用:为了使浏览器更好的显示HTML文件,必须告知浏览器你的文件为HTML     语法:<!DOCTYPE html> 声明必须放在HTML文档第一行 声明不是HTM ...

  3. 文档类型DTD,DOCTYPE和浏览器模式

    出处:http://blog.csdn.net/freshlover/article/details/11616563 浏览器从服务端获取网页后会根据文档的DOCTYPE定义显示网页,如果文档正确定义 ...

  4. HTML5入门:HTML5的文档声明和基本代码

    HTML5的文档声明: HTML5的文档声明,不同于HTML4.0和XHTML,它精简了许多代码,只保留<!DOCTYPE html>开头,必须位于HTML5文档的第一行,它可以用来告诉浏 ...

  5. HTML5的文档结构

    HTML5的文档结构 HTML5简化了许多,它的设计遵循了3个原则:1.兼容性.2.实用性.3.通用访问性     1. header 元素     <header> 标签定义文档或者文档 ...

  6. HTML5网页文档结构

    2.1     Web标准 Web标准,使得Web开发更加容易.Web标准由万维网联盟(W3C)制定. 2.1.1          Web标准概述 Web标准的最终目的就是保证每个人都有权力访问相同 ...

  7. HTML5跨文档消息传递

    HTML5定义了一些javascript API,其中有一个就是跨文档消息传递(cross-document-messaging简称XDM). 现在XDM已经作为一个规范独立了出来,名字为:Web M ...

  8. HTML5 跨文档消息传输

    对窗口对象的message事件进行监听 window.addEventListener("message", function(event) { // 处理程序代码 }, fals ...

  9. HTML5 初始文档声明

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

随机推荐

  1. 专访阿里资深研发工程师窦贤明:PG与商业数据库差距并不明显

    窦贤明认为, 支持类型.功能和语法丰富,性能优良   9月24日,窦贤明将参加在北京举办的线下活动,并做主题为<Greenplum分片案例分析>的分享.值此,他分享了PG.工作上的一些经历 ...

  2. ios虚拟机安装(四)

    Virtual Machine Settings: Processors(Virtual Intel VT-X/EPT or AMD-V/RVI 一定要打勾) Floppy(软驱) (必须remove ...

  3. 自己搭建云盘 – 简单的PHP网盘程序

    自己搭建云盘 – 简单的PHP网盘程序 Veno File Manager 2.6.3 汉化版 相信大家都比较熟悉或使用过 Owncloud 网盘程序,Owncloud 虽强大,不过太过于臃肿,而 V ...

  4. 事件驱动模型 IO多路复用 阻塞IO与非阻塞IO select epool

    一.事件驱动 1.要理解事件驱动和程序,就需要与非事件驱动的程序进行比较.实际上,现代的程序大多是事件驱动的,比如多线程的程序,肯定是事件驱动的.早期则存在许多非事件驱动的程序,这样的程序,在需要等待 ...

  5. log4j.properties 配置示例

    需要的jar如下: !-- log4j --> <dependency> <groupId>log4j</groupId> <artifactId> ...

  6. springboot学习入门之四---开发Web应用之Thymeleaf篇

    http://tengj.top/2017/03/13/springboot4/ 1项目结构 说明: root package结构:com.dudu 应用启动类Application.java置于ro ...

  7. leetCode题解之寻找string中最后一个word的长度

    1.题目描述 返回一个 string中最后一个单词的长度.单词定义为没有空格的连续的字符,比如 ‘a’,'akkk'. 2.问题分析 从后向前扫描,如果string是以空格‘  ’结尾的,就不用计数, ...

  8. Ad-hoc 查询以及动态SQL的罪恶[译]

    本文为翻译文章,原文地址:https://www.simple-talk.com/blogs/2009/08/03/stolen-pages-ad-hoc-queries-and-the-sins-o ...

  9. ORACLE数据泵还原(IMPDP命令)

    Oracle数据库还原IMPDP命令是相对于EXPDP命令的,方向是反向的.即对于数据库备份进行还原操作.一.知晓IMPDP命令 C:\>impdp -help Import: Release ...

  10. Oracle EBS AP更新供应商地址

    SELECT pvs.vendor_site_id, pvs.party_site_id, hps.party_site_name, hps.object_version_number, hps.pa ...