DTD的作用
在介绍DTD的作用之前先介绍一下SGML:
SGML SGML(Standard Generalized Markup Language,标准通用标记语言),是一种定义电子文档结构和描述其内容的国际标准语言,是所有电子文档标记语言的起源,
早在Web发明之前SGML就已存在. SGML是1986年出版发布的一个信息管理方面的国际标准(ISO 8879)。该标准定义独立于平台和应用的文本文档的格式、索引和链接信息,
为用户提供一种类似于语法的机制,用来定义文档的结构和指示文档结构的标签。
DTD的作用——文档规范与呈现模式
1. DTD在页面中的作用
①DTD(Document Type Definition文档类型定义)是一组机器可读的规则,它们定义XML或HTML的特定版本中允许有什么,不允许有什么。在解析网页时,浏览器将使用这些规则检查页面的有效性并且采取相应的措施。(由DTD中定义的文档类型影响)
②DTD是对HTML文档声明,还会影响浏览器的渲染模式(工作模式)。(由页面中书写DTD的方式影响)
举个例子:
2. DTD规定XML或HTML中的标签和语法
1)HTML 4.01规定了三种文档类型:Strict、Transitional 以及 Frameset
①STRICT(严格类型):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
②TRANSITIONAL(过渡类型):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
③FRAMESET(框架类型):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
2)XHTML 1.0 规定了三种 XML 文档类型:Strict、Transitional 以及 Frameset。
①STRICT(严格类型):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
②TRANSITIONAL(过渡类型):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
③FRAMESET(框架类型):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
3)HTML5只规定了一种文档类型:
<!DOCTYPE HTML>
3. DTD会影响浏览器的渲染模式:
1)浏览器的渲染模式:
①标准模式(又叫严格模式,Standards mode 或者 Strict mode)。
②混杂模式(又叫怪异模式,Quirks mode):对页面的处理方式永久冻结在IE5.5,主要体现盒模型的差异。
③近似标准模式(又叫准标准模式,Almost Stands Mode):从字面意思上看与标准模式非常类似,但确实有小的差别。主要体现在对于表格单元格内垂直方向布局渲染差异。
2)DTD的不同导致渲染模式的不同
①XHTML文档包含形式完整的DOCTYPE,一般以标准模式呈现。
②HTML4.01文档,包含严格DTD的文档,一般也以标准模式呈现。
③含过渡DTD和URI的DOCTYPE,一般以标准模式呈现。
④含过渡DTD但没有URI的DOCTYPE,会以混杂模式呈现。
⑤DOCTYPE不存在或不正确会导致HTML和XHTML文档以混杂模式呈现。
★具体呈现模式参见:http://hsivonen.iki.fi/doctype/
4. JavaScript中关于呈现模式的返回结果:
在 HTML5 草案中,更加明确的规定了模式的定义:
|
传统名称 |
HTML5 草案名称 |
document.compatMode 返回值 |
|
standards mode 或者 strict mode |
no-quirks mode |
CSS1Compat |
|
almost standards mode |
limited-quirks mode |
CSS1Compat |
|
quirks mode |
quirks mode |
BackCompat |
注:HTML5 草案关于 compatMode 的介绍:3.1.3 Resource metadata management
5. HTML5中,无需定义DTD的URL原因
1)HTML4.01和XHTML
①DTD 规定了使用通用标记语言(SGML)的网页的语法。
②诸如 HTML 这样的通用标记语言应该使用 DTD 来规定应用于某种特定文档中的标签的规则,这些规则包括一系列的元素和实体的声明。
③在通用标记语言(SGML)的文档类型声明或 DTD 中,XHTML 被详细地进行了描述。
④XHTML DTD 使用精确的可被计算机读取的语言来描述合法的 XHTML 标记的语法和句法。
2)HTML4.01中的doctype需要对DTD进行引用,因为HTML4.01基于SGML。而HTML 5不基于SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。
DTD的作用的更多相关文章
- xml中DTD解析
DTD的作用是"文档类型的定义" DTD申明始终以<!DOCTYPE开头(开头后空一格). 本标签一共有三种写法 一.内部DTD: <!DOCTYPE 根元素 [ 文档 ...
- DTD指定了游戏规则。
1.DTD的作用 DTD是XML的型,列出了XML中的元素有哪些.元素间的关系.元素可以有哪些内容,元素的属性也有哪些.DTD实质说明的是元素间的关系,也就是类之间的关系.是一棵树状结构的说明,与XM ...
- XML DTD验证
XML DTD验证 一.什么是DTD 文档类型定义(DTD:Document Type Definition)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行 ...
- 什么是dtd文件,为什么需要dtd
DTD为英文Document Type Definition,中文意思为"文档类定义".DTD肩负着两重任务:一方面它帮助你编写合法的代码,另一方面它让浏览器正确地显示器代码.也许 ...
- DTD验证XML文档
DTD验证XML文档 1.DTD简介:DTD是Document Type Definition的缩写,即文档定义 1.1:DTD的内容包含: ...
- Hibernate学习---基本介绍+作用+配置
从今天开始重新学习(以前学的太匆忙)Hibernate,这篇文章主要就一下几点进行讲解和说明: Hibernate的基本介绍 Hibernate的作用 Hibernate基本配置 Hibernate的 ...
- XML之基础和DTD解析
本笔记可根据W3school教程学习: 首先-----了解XML文档结构.语法规范.作用 -----了解DTD约束的作用.具体约束语法 <?xml version="1.0" ...
- XML语言基础1
这学期选修了XML技术这门课,没有发课本,于是参考了W3school教程,整理一下上课的内容. 1.XML简介 XML是一种标记语言,很类似HTML,它不是对HTML的替代,而是对HTML的补充.在大 ...
- XML 参考:XML基础 XML 简介
XML 参考:XML基础 -- XML简介和用途 转:http://www.cnblogs.com/Dlonghow/archive/2009/01/22/1379799.html XML 参考:XM ...
随机推荐
- Hdu 5489 合肥网络赛 1009 Removed Interval
跳跃式LIS(nlogn),在普通的转移基础上增加一种可以跨越一段距离的转移,用一颗新的树状数组维护,同时,我们还要维护跨越完一次后面的转移,所以我用了3颗树状数组.. 比赛的时候一句话位置写错了,然 ...
- babel 解构赋值无法问题
这个东西需要第二级, babel-preset-stage-2,然后再presets里引入stage-2的设置,再plugins离引入对应的插件 { "presets": [&qu ...
- 使用JDBC实现Oracle用户认证
两天时间写的小品,以前的J2EE环境基本使用框架.现在使用JDBC配合Oracle存储过程模拟了一下用户注册和用户认证. 一.添加必须的jar包 需要JDBC连接Oracle的包和shiro-core ...
- Django项目流程(摘抄整理)
1.操作环境 Windows 8.1 Django 1.9 Python 2.7.10 2.创建工程 在cmd中运行后面的所有命令:
- win7下matlab2016a配置vlfeat
1.下载vlfeat http://www.vlfeat.org/ 2.解压到了matlab安装目录的toolbox下 3.打开vs2013的这个 4.输入nmake version 查看我的版本是 ...
- HTML5 LocalStorage 本地存储原理详解
首先自然是检测浏览器是否支持本地存储.在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在 ...
- 【转载】DOS 系统和 Windows 系统有什么关系?为什么windows系统下可以执行dos命令?
作者:bombless 因为不同的系统都叫 Windows ,这些系统在界面上也有一定连续性并且因此可能造成误解,所以有必要稍微梳理一下几个不同的 Windows 系统.首先是 DOS 上的一个图形界 ...
- 图片资源的加密和cocos2d-x中的解密
主要处理png图片,其他格式图片也是一样的原理.阅读前可以简略了解一下png格式图片的Data trunck. 首先使用python脚本去掉png的PNG SIG(8 bytes) 以及末尾的PNGI ...
- Solr搭建大数据查询平台
参考文章:http://www.freebuf.com/articles/database/100423.html 对上面链接的补充: solr-5.5.0版本已被删除,新url:http://mir ...
- html select的事件 方法 属性
事件 onactivate 当对象设置为活动元素时触发. onafterupdate 当成功更新数据源对象中的关联对象后在数据绑定对象上触发. onbeforeactivate 对象要被设置为当前元素 ...