在介绍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的方式影响)

举个例子:

这是一个居中段落

在XHTML中,标记是区分大小写的,上面的代码毫无意义。可在HTML中它是一个居中段落。浏览器是怎样处理这种情况呢?难道浏览器认为你写的是HTML,然后把它作为             一个居中段落显示?如是你写的是XHTML呢,它将是一段不可显示的代码!浏览器是怎样知道你用的是什么标记语言然后正确对待这段代码呢?

这就是DTD的工作了。一个DTD应该放在每一个文档的第一行。这样正确地放置,你的DTD才能告诉浏览器的用的是什么标记语言。在通常情况下,如果你编写的是正确       代码,并拥有一个合适的DTD,浏览器将会根据W3C的标准显示你的代码。

如果说你没有使用DTD,你将很难预测浏览器是怎样显示你的代码,仅仅在同一浏览器就有不同的显示效果。尽管你的网页做得非常飘亮,要是没有使用DTD,你的努力也是白费的。因此,一个DTD是必不可少的。

2. DTD规定XML或HTML中的标签和语法

1)HTML 4.01规定了三种文档类型:Strict、Transitional 以及 Frameset

①STRICT(严格类型):

②TRANSITIONAL(过渡类型):

③FRAMESET(框架类型):

2)XHTML 1.0 规定了三种 XML 文档类型:Strict、Transitional 以及 Frameset。

①STRICT(严格类型):

②TRANSITIONAL(过渡类型):

③FRAMESET(框架类型):

3)HTML5只规定了一种文档类型:

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文档以混杂模式呈现。

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

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来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。

xml中DTD解析

DTD的作用是"文档类型的定义" DTD申明始终以开头后空一格). 本标签一共有三种写法 一.内部DTD: 文档 ...

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 ...

随机推荐

Android多线程分析之三:Handler,Looper的实现

Android多线程分析之三:Handler,Looper的实现 罗朝辉 (http://www.cnblogs.com/kesalin/) CC 许可,转载请注明出处 在前文

强大的Sublime编辑器

Sublime是一款功能非常强大的轻量级的代码及文本编辑工具,有关它的介绍和下载可以从官网http://www.sublimetext.com获取.尽管Sublime并非是一款完全免费的IDE开发工具 ...

一个程序说明标准i&sol;O缓冲的效率

来瞧一个程序,了解一下标准I/O中的缓冲区对程序运行的影响: #include#include int main(){ char a[2] ...

uva--1339 - Ancient Cipher&lpar;模拟水体系列&rpar;

1339 - Ancient Cipher Ancient Roman empire had a strong government system with various departments, ...

项目中的libevent

单线程libevent模式 项目里面是多线程版的,我先理解下单线程的. //client .调用NGP::init() bool NGP::init(NGPcontext context) { _co ...

bzoj2124 等差子序列(hash&plus;线段树)

2124: 等差子序列 Time Limit: 3 Sec  Memory Limit: 259 MBSubmit: 719  Solved: 261[Submit][Status][Discuss] ...

3466 ACM Proud Merchants 变形的01背包

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3466 题意:假设你有M元,已经Pi,Qi,Vi(i为角标,1Qi,时才 ...

UI框架搭建DAY1

分析:UI框架主要是为了用户(使用框架的程序猿)更快捷.方便地开发UI,UI框架的好处还在于解耦,使得程序更具有灵活性. UI框架的核心是窗口的管理,窗口管理的主要任务就是显示窗口和关闭窗口. 因为窗 ...

48-Python 安装pyautogui失败解决办法

转载自:https://www.cnblogs.com/SH170706/p/9809830.html Python 安装pyautogui 在Python中使用PyAutoGui模拟键盘和鼠标操作 ...

ios学习之旅--oc对象的关系

1.匿名对象:就是没有名字对象     1.匿名对象仅用一次     使用场景:     1.当我们仅仅要调用一个对象的某个方法一次的时候能够使用匿名对象 2.匿名对象能够作为函数的实际參数 #imp ...

html5页面的dtd定义是,DTD的作用相关推荐

  1. html dtd定义,DTD 简介

    DTD 简介 文档类型定义(DTD)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. 内部的 DOCTYPE ...

  2. 文档声明Doctype和Doctype html区别 文档类型定义(DTD)

    文档类型定义(DTD)可定义合法的XML文档构建模块.它使用一系列合法的元素来定义文档的结构. DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. 文档声明的作用: 文档声明是为了告诉浏 ...

  3. 关于mybatis的参数2个使用经验(类似于struts2的通配所有页面的action配置,xmlsq语句参数类型为基本类型时的快捷指定办法)...

    1.我们都知道在struts2中为防止浏览器绕过struts过滤器直接请求页面,所以我们都会配置一个拦截所有页面的action,如下: <action name="*"> ...

  4. NET中winform与webform互相通讯实例,CS调用BS页面的JS函数---转载

    原创:.NET中winform与webform互相通讯实例,CS调用BS页面的JS函数 时间:2009-12-11 21:09:32 来源:原创 作者:dodo - - 现在C#越来越多朋友使用了,大 ...

  5. javascript笔记——点击按钮(或超链接)如何跳转到另外一个页面并执行目标页面的js函数...

    页面跳转同时执行js代码$(function(){});url参数传递 标题的前半部分其实不必赘述,按钮也可以换成超链接.. 假设是需要在A页面上的一个按钮,点击后跳转到B页面,传一些参数后且并B页面 ...

  6. 详解ASP.NET页面的aspx扩展

    我们通过本文要谈谈ASP.NET页面的aspx扩展,主要是为了网站业务上的扩展,保持两个网站图片内容同步.希望本文能对大家有所帮助. 需求:某网站因业务扩展,需拆分出另一个站点,新旧站点具有相同的内容 ...

  7. seo需要处理页面html,为什么单页面的seo不友好?如何解决这一问题?

    前言 大家可能都知道单页面的SEO不友好,但是你有没有思考过为什么单页面的SEO不友好呢?在单页面盛行的今天,有哪些策略来规避掉这一缺点呢?很好奇有木有?那就跟我一起开启探索之旅吧~ 搜索引擎的工作原 ...

  8. vue 设置每个页面的title

    vue 设置每个页面的title 由于vue文件中只有一个Index.html 文件 title 显示需要通过document.title来设置 1.router---index.js文件中添加met ...

  9. APL在Web应用系列 --- 例子1: 在Web页面的javascript中 调用 apl脚本

    这个专题 专门讲 APL平台在 Web中的应用. APL平台在Web中应用范围包括: 1.  在Web服务端应用: APL平台中,  aplHttpServer.exe( APL中本地的Web服务器 ...

  10. 动态改变vue项目页面的title

    其实也没啥,就是一句代码的事,只不过看在哪里执行而已.这句代码是: document.title = "新题目"; 一.动态改变vue项目页面的title vue只是一个前端框架, ...

最新文章

  1. 一图读懂|《“十四五”大数据产业发展规划》
  2. 【UWB】Savitzky Golay filter SG滤波器快速入门并上手使用
  3. 【管理】舍KPI取OKR,Google的管理方法
  4. vs2015 QT5.6 兼容xp系统
  5. python 接收邮件服务器地址_Python 用IMAP接收邮件
  6. DOM--5 动态修改样式和层叠样式表
  7. android关键应用程序,Android应用程序的四个关键点
  8. 数据结构笔记(十五)-- 数组原理
  9. html 正则表达式密码判断,JS利用正则表达式实现简单的密码强弱判断实例
  10. kotlin中文开发文档+视频教程+Android Studio 3.0下载地址
  11. 晶闸管对触发脉冲的要求
  12. 433MHz,2.4GHz,GPRS,NB-IOT各有哪些特点?
  13. php error allowed,ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
  14. ZDNET的一个技术博客评选结果
  15. oracle 迁移到另一台服务器上,Oracle数据库迁移(从一台服务器迁移到另一台服务器)...
  16. 深入分析Luminati住宅代理的特点和性能
  17. java 支付宝回调校验签名_支付宝异步回调验证签名
  18. 从外网访问内网Epson爱普生无线打印机和扫描仪
  19. latex 表格引用出错 出现?? You have referenced something which has not yet been labelled
  20. IMS:MotionEvent 坐标点(上)

热门文章

  1. 网站地图怎么做?dedecms网站地图制作方法
  2. vue使用mavon-editor编辑器,外链保存到本地,且A标签外链和图片外链的处理
  3. Web3.0西安圆桌会议圆满结束TrustBase平行链露出水面
  4. Ubuntu 老版本下载
  5. 举个栗子!Tableau 技巧(183):快速实现部分类别的排序
  6. CASE WHEN THEN 判断
  7. 笨笨的Zend - RewriteBase
  8. 单例模式singleton
  9. ABAP submit程序获取ALV数据的方法
  10. 国内智能网联汽车信息安全政策汇总及思考