关于Doctype与浏览器呈现模式

一 HTML版本——浏览器向后兼容性(What & Why)

在介绍什么是Doctype之前,我们先了解一下 HTML版本。

从HTML的产生到HTML5的提出,经历了几十年的发展和完善。这就导致了许多的web页面,使用HTML的老版本写的。每个版本的标签、语法都不完全相同,很多标签都已经被替换或者废弃了。

结论1:

所以浏览器就得:既能支持由老版本HTML写的网页,也要支持最新标准的网页(即向后兼容性)

二 文档类型(DOCTYPE)

1 什么是DTD (What):

不同的HTML版本(标准)的语法规则的不同的,这就意味着相对应的浏览器实际页面渲染机制也不相同。因此就需要引入DTD(文档类型定义)

1 DTD是一组机器可读的规则,它定义HTML的特定版本的规则里,允许有什 么,不允许有什么;

2 解析页面时,浏览器就利用这些规则,检查页面的有效性,并进行渲染。

而DOCTYPE声明,就是用来描述使用哪个DTD的。

2 什么是DOCTYPE (What):

  • 用来告知浏览器的解析器,使用哪个DTD;
  • DOCTYPE声明通常(但不总是)包含 指定的DTD文件的URL;
  • 它位于位于 HTML文档中的第一行;
  • DOCTYPE当前有两种风格,严格模式和过渡模式。

三 浏览器模式 和 DOCTYPE切换

1 浏览器模式

上文提到,浏览器需要确保向后兼容性(Why and what见上文);

为了实现这一点,浏览器创建了2种呈现模式:标准模式和兼容模式

在标准模式中,浏览器根据 当前支持的最新规范 呈现页面;

在兼容模式中,页面以一种比较宽松的向后兼容的方式显示,它通常模拟老式浏览器的行为,以防止老站点无法工作;

2 DOCTYPE切换

呈现 浏览器模式的依据:

  1. DOCTYPE 是否存在;
  2. 使用的 DTD类型;

当DOCTYPE不存在或形式不正确时,就会导致HTML文档以混杂模式呈现。

根据DOCTYPE是否存在 选择呈现模式,被称为DOCTYPE切换;

DOCTYPE切换 是浏览器用来区分 遗留文档和符合标准文档的手段;

如果选择了错误的DOCTYPE,那么页面就将以混杂模式呈现,其行为就可能会有错误或不可预测。

四 小结

1 DOCTYPE声明的作用:

1 帮助浏览器进行对页面的有效性验证:

浏览器解析页面规则——需要知道DTD—— DOCTYPE声明可以指定使用哪个DTD;

所以,DOCTYPE声明告知浏览器的解析器,用什么文档标准解析这个文档;

2 影响浏览器以何种模式呈现页面:

浏览器创建了2种呈现模式:标准模式和兼容模式;

DOCTYPE不存在或格式不正确,会导致文档以兼容模式呈现

2 HTML5文档声明:

HTML5不基于SGML,所以不需要引用DTD;

但是它需要doctype来规范浏览器的行为,让浏览器按照正确的方式运行;

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

3 Refernce:

精通CSS

原文地址:https://www.cnblogs.com/ygming/p/8283344.html

时间: 2024-11-11 22:49:39

关于Doctype与浏览器呈现模式的相关文章

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

出处:http://blog.csdn.net/freshlover/article/details/11616563 浏览器从服务端获取网页后会根据文档的DOCTYPE定义显示网页,如果文档正确定义了DOCTYPE浏览器则会进入标准模式(Standards Mode),否则浏览器会进入怪异模式或混杂模式(Quirks mode). 浏览器开发初期W3C倡导的网页标准并不流行,因此浏览器有独特的对网页标签或属性的解析模式,随着日后网页标准的流行,浏览器增加了对新标准的支持(Standards M

IE浏览器兼容性模式

最近支持公司的一个内部业务管理系统,系统是基于jQuery来实现:用了2年的MVVM框架的我转向这个完全使用jQuery框架来开发的系统,真是相当不爽(相信用过MVVM框架的跟我是相同的感受):更为憋屈的是,到了这个年代,IE的亲爹微软都放弃支持IE6-10了,系统尽然还只支持使用IE浏览器(运营电脑安装都是IE8浏览器,所以大部分只管IE8),其他高级浏览器不被支持(当然这是由于系统使用了基于IE的一些插件导致). 但是话又说回来,但是在支持系统的开发过程中,经常看到X-UA-Compatib

浏览器 怪异模式(Quirks Mode) 与 标准模式(Standards Mode)

怪异模式,浏览器使用自己的方式解析渲染页面,在不同的浏览器就会显示不同的样式.标准模式,浏览器使用W3C的标准解析渲染页面. 通过 document.compatMode 的值可以知道当前用的是什么模式.BackCompat:怪异模式CSS1Compat:标准模式 IE 6 for Windows/mac, Mozilla, Safari和Opera 都实现了这两种模式,但是IE 6以下版本永远定在了怪异模式.没有指定dtd将会开启浏览器的怪异模式,这种说法是错的!正确的说法应该是没有定义doc

浏览器解析模式

DOCTYPE,或者称为 Document Type Declaration(文档类型声明,缩写 DTD).通常情况下,DOCTYPE 位于一个 HTML 文档的最前面的位置,根元素 html 的起始标签之前,前面没有任何内容,不区分大小写.因为浏览器必须在解析 HTML 文档正文之前就确定当前文档的类型,以决定其需要采用的渲染模式.不同的渲染模式会影响到浏览器对于 CSS 代码甚至 JavaScript 脚本的解析.尤其是在 IE 系列浏览器中,由 DOCTYPE 所决定的 HTML 页面的渲

【转】http-equiv="X-UA-Compatible" 设置IE浏览器兼容模式详解

文件兼容性用于定义让IE如何编译你的网页.此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式. 前言 为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE8引入了文件兼容性.在IE6中引入一个增设的兼容性模式,文件兼容性使你能够在IE呈现你的网页时选择特定编译模式.新的IE为了确保网页在未来的版本中都有一支的外观,IE8引入了文件兼容性.当你引入一个增设的兼容性模式,此文章说明文件兼容性的必要性,列出现有版本IE能使用的文件兼容性模式并示范如何选择特

使用X-UA-Compatible来设置IE浏览器兼容模式

文件兼容性用于定义让IE如何编译你的网页.此文件解释文件兼容性,如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式. 前言 为了帮助确保你的网页在所有未来的IE版本都有一致的外观,IE8引入了文件兼容性.在IE6中引入一个增设的兼容性模式,文件兼容性使你能够在IE呈现你的网页时选择特定编译模式.新的IE为了确保网页在未来的版本中都有一支的外观,IE8引入了文件兼容性.当你引入一个增设的兼容性模式,此文章说明文件兼容性的必要性,列出现有版本IE能使用的文件兼容性模式并示范如何选择特

DOCTYPE 与浏览器渲染模式分析

DOCTYPE 的诞生 DOCTYPE,或者称为 Document Type Declaration(文档类型声明,缩写 DTD).通常情况下,DOCTYPE 位于一个 HTML 文档的最前面的位置,位于根元素 HTML 的起始标签之前.因为浏览器必须在解析 HTML 文档正文之前就确定当前文档的类型,以决定其需要采用的渲染模式,不同的渲染模式会影响到浏览器对于 CSS 代码甚至 JavaScript 脚本的解析.尤其是在 IE 系列浏览器中,由 DOCTYPE 所决定的 HTML 页面的渲染模

flex与相对定位在国内双核浏览器极速模式下的兼容性问题

---恢复内容开始--- 览器兼容性问题是前端的一个重要部分. 在国内的浏览器中,360浏览器,QQ浏览器等绝大部分都是双核浏览器.双核浏览器即拥有IE兼容内核和非IE极速内核两个内核,分别对应兼容模式和极速模式.兼容模式时使用IE内核,极速模式采用webkit内核.而目前大部分网站为了性能和用户体验,默认使用极速模式.在极速模式出现问题时,使用兼容模式. 虽然极速模式是使用的webkit内核,但是浏览器的表现却还是有一定差异.平时使用Chrome调试,在极速模式下却表现的不正常. 好,进入正题

深入理解浏览器兼容性模式

摘要:关于各种浏览器模式,网上已经有许多文档和资料了,但是很少有能够完全将几个概念阐述清楚的.大部分的资料稍显过时,有些内容可能已经不再适用了.本文中笔者将尽可能将几个概念阐述清楚,并去掉一些过时的内容,仅保留必要的干货. 想必你一定知道浏览器有个标准(Standards)模式和一个怪异(Quirks)模式,或许你还听说过有个"准标准(Almost Standards)"模式.而当你打开Internet Explorer的时候,又看到了什么浏览器模式.文档模式,还有什么兼容性视图等等.