设为首页 加入收藏

TOP

HTML学习笔记——DOCTYPE和DTD,标准模式和兼容模式(一)
2019-09-03 03:19:26 】 浏览:28
Tags:HTML 学习 笔记 DOCTYPE DTD 标准 模式 兼容

主要涉及知识点:

  • HTML与XHTML
  • HTML与XHTML的区别
  • DOCTYPE与DTD的概念
  • DTD的分类以及DOCTYPE的声明方式
  • 标准模式(Standard Mode)和兼容模式(Quircks Mode)
  • 标准模式(Standard Mode)和兼容模式(Quircks Mode)的区别

HTML与XHTML

  • HTML:超文本标记语言 (Hyper Text Markup Language)
    XHTML:可扩展超文本标记语言 (EXtensible HyperText Markup Language),是一种置标语言。
  • HTML是一种基于标准通用标记语言(SGML)的应用,XHTML则基于可扩展标记语言(XML)
  • XHTML的目标是取代HTML,与HTML4.01几乎相同,是更严格更纯净的 HTML 版本。
  • HTML 和 XHTML 的区别简单来说,XHTML 可以认为是 XML 版本的 HTML,为符合 XML 要求,XHTML 语法上要求更严谨些。

?本质上说,XHTML是一个过渡技术,结合了部分XML的强大功能及大多数HTML的简单特性。建立XHTML的目的就是实现HTML向XML的过渡。在HTML5成为主流之前,Html4.01一直是大多数人使用的Html版本,Html5目标是取代HTML4.01和XHTML1.0标准,旨在提高网页性能,增加页面交互。

HTML与XHTML的区别

XHTML 与 HTML 4.01 标准没有太多的不同。主要的不同体现在下面几点:

  • XHTML 元素必须被正确地嵌套。
  • XHTML 元素必须被关闭。
  • 标签名必须用小写字母。
  • XHTML 文档必须拥有根元素。

DOCTYPE与DTD的概念

?文档类型定义(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则,是HTML的验证机制。DOCTYPE标签是一种标准通用标记语言的文档类型声明,声明文档的解析类型,它的目的是要告诉标准通用标记语言解析器,它应该使用什么样的DTD(用什么样的文档标准)来解析文档。DTD定义了文档中的元素(标记和属性)和实体,以及相互关系。 通过DTD验证XML文档的有效性。DTD为解析器提供了解析HTML文档的依据。

DTD的分类以及DOCTYPE的声明方式

?由于HTML5不基于 SGML,因此不需要对DTD进行引用;但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。
?因此HTML5的DOCTYPE声明:
?? <!DOCTYPE html>

?而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型,有以下三种类型:

  • HTML 4.01 Strict DOCTYPE声明:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  • HTML 4.01 Transitional DOCTYPE声明:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  • HTML 4.01 Frameset DOCTYPE声明:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
  • XHTML 1.0 Strict DOCTYPE声明:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  • XHTML 1.0 Transitional DOCTYPE声明:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  • XHTML 1.0 Frameset DOCTYPE声明:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

三种DTD类型的作用说明:

  • Strict : 干净的标记,免于表现层的混乱,与层叠样式表(CSS)配合使用。
  • Transitional :包含 W3C 所期望移入样式表的呈现属性和元素。使用不支持层叠样式表(CSS)的浏览器时使用。
  • Frameset : 应当被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset等同于 Transitional。

标准模式(Standard Mode)和兼容模式(Quircks Mode)

?在W3C标准出来之前,浏览器对页面的渲染没有统一的标准,各个浏览器对同一页面的渲染有一定的差异,而每个浏览器的不同版本对页面的渲染也有一定程度上的差异。而W3C标准出来之后,浏览器对页面的渲染就有了统一的标准。前者对于浏览器使用自己的方式渲染页面的模式,我们称之为Quircks Mode(怪异模式、兼容模式或混杂模式);而对于后者浏览器按照标准解析执行代码的模式,我们称之为Standard Mode(标准模式或严格模式)。在标准模式中,浏览器根据规范呈现页面;在兼容模式中,页面以一种比较宽松的向后兼容的方式显示。其实,还有一种模式叫近标准模式,它与标准模式一致,除了在处理下面这种情况时:如果一个块级元素除了空白文本(空格,tab等字符)外再无其它内容,则它的高度按0处理;如果有子元素,则它的高度不能比子元素大,无论它的font-size多大。
?那么,浏览器解析时到底使用标准模式还是怪异模式?这就和之前提到的DOCTYPE有关了。

  • 标准模式:
  1. XHTML文档包含完整的DOCTYPE声明时,一般以标准模式呈现;
  2. 文档包含严格DTD类型的DOCTYPE声明时,以标准模式呈现;
  3. 文档包含过渡DTD类型的DOCTYPE声明且声明包含URI时,以标准模式呈现。
  • 兼容模式:
  1. 文档不包含DOCTYPE声明或DOCTYPE声明不正确时,以兼容模式呈现;
  2. 文档包含过渡或框架DTD类型的DOCTYPE声明但声明不包含URI时,以兼容模式呈现;
  3. 在IE中,如果DOCTYPE声明在XML之后,以兼容模式呈现。

标准模式(Standard Mode)和兼容模式(Quircks Mode)的区别

?最后总结一下,在标准模式和兼容模式下,页面的呈现主要有哪些区别:

  • 关于盒

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇后端自动构建前端css和js 下一篇css中background-clip属性的作用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目