Doctype:(Document Type)文档类型,它位于文档中最前面的位置,处于标签之前。如果你想制作符合标准的页面,一个必不可少的关键组成部分就是DOCTYPE的声明。确定了正确的Doctype,xhtml里面的标识和css才能正常生效(也就是说它会很负责地告诉浏览器怎么解释你的这个标签和你写的css)。既然它是一种声明,它的责任就是告诉浏览器文档使用哪种html或者xhtml规范。为了获取正确的Doctype声明,关键就是让dtd与文档所遵循的标准对应。例如:假定文档遵循的是xhtml 1.0 strict,那么文档的Doctype声明就应该是相应的dtd,如果Doctype声明指定的是xhtml dtd,但文档包含的依旧是html标记就是不恰当的。类似的,如果文档包含的是xhtml 1.0 strict标记,但是Doctype声明指定是html dtd也是不恰当的。

  一、选择什么样的DOCTYPE?

  xhtml 1.0中有3种dtd声明可以选择,过渡性的(Transitional)、严格的(Strict)、框架的(Frameset)。下面我们来分别介绍:

  1、过渡的:一种要求不很严格的,允许在html中使用html 4.01的标识(符合xhtml语法标准),过渡的dtd写法如下:

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

  2、严格的:一种要求严格的dtd,不允许使用任何表现层的标识和属性,严格的dtd写法如下:

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

  3、框架的:一种专门针对框架页面所使用的dtd,当页面中含有框架元素时,就要采用这种dtd,写法如下:

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

  PS:使用严格的dtd来制作页面当然是最理想的方式,但是对于还没有深入了解web标准的网页设计者,比较适合用过渡的dtd,因为这种dtd还允许使用表现层的标识、元素和属性,比较适合大多数的网页制作人员(当然量力而为了!)

二、什么是标准模式与混杂模式?

不同文档模式主要影响CSS内容的呈现,尤其是浏览器对盒模型的解析,但在某些情况下也会影响到JavaScript的解释执行。
1、文档模式目前有四种:

混杂模式(quirks mode)//让IE的行为与(包含非标准特性的)IE5相同
标准模式(standards mode)
//让IE的行为更接近标准行为
准标准模式(almost standards mode)
//这种模式下的浏览器特性有很多都是符合标准的,不标准的地方主要体现在处理图片间隙的时候(在表格中使用图片时问题最明显)。
超级标准模式:
//IE8引入的一种新的文档模式,超级文档模式可以让IE以其所有版本中最符合标准的方式来解释网页内容。

ps:
总的来看,混杂模式让IE像IE5,标准模式使用IE7的呈现引擎,而超级标准模式则是IE8的默认文档模式。

(另一篇关于混杂模式解释:

什么是混杂模式呢?
  混杂模式是一种比较宽松的向后兼容的模式。混杂模式通常模拟老式浏览器的行为,以防止老站点无法工作。

  为什么会有混杂模式呢?
  当年Netscape4(译注:网景公司早期的浏览器)和IE4(微软公司早期的浏览器)实现CSS机制时,并没有遵循W3C提出的标准。Netscape4 提供了糟糕的支持,而IE4 虽然接近标准,但依旧未能完全正确的支持标准。尽管IE 5 修复了IE4 许多的问题(bugs),但是依然延续CSS实现中的其它故障(主要是盒模型(box model)问题)。为了保障自己的网站在各个浏览器上显示正确,网页开发者们不得不依据各个浏览器自身的规范来使用css,因此大部分网站的css实现并不符合W3C规范的标准。然而随着标准一致性越来越重要,浏览器开发商不得不面临一个艰难的抉择:逐渐遵循W3C的标准是前进的方向。但是改变现有的 css,完全去遵循标准,会使许多旧网站或多或少受到破坏,如果浏览器突然以正确的方式解析现存的css,陈旧的网站的显示必然会受到影响。所以,所有的浏览器都需要提供两种模式:混杂模式服务与旧式规则,而严格模式服务于标准规则

2、两种模式间的差异

对于这两种模式之间的差异,最显著的一个例子与Windows上IE专有的盒模型有关。在IE 6出现时,在标准模式中使用的是正确的盒模型,在混杂模式中使用的则是老式的专有盒模型。为了维持对IE 5和更低版本的向后兼容性,Opera 7和更高版本也在混杂模式中使用有缺点的IE盒模型。

呈现方面的其他差异比较小,而且是与特定浏览器相关的,包括对于十六进制颜色值不需要#号、假设CSS中没有指定单位的长度的单位是像素,以及在使用关键字时将字号增加一级。

3、如何触发两种模式

DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。

触发严格模式:

<!-- HTML 4.01 严格型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"  "http://www.w3.org/TR/html4/strict.dtd"> <!-- XHTML 1.0 严格型 -->
<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

触发混杂模式

<!-- HTML 4.01 过渡型 -->
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd"> <!-- HTML 4.01 框架集型 -->
<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01 Frameset//EN"  "http://www.w3.org/TR/html4/frameset.dtd"> <!-- XHTML 1.0 过渡型 -->
<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!-- XHTML 1.0 框架集型 -->
<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Frameset//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

IE8关闭超标准模式

<meta http-equiv="X-UA-Compatible" content="IE=7" />
content属性中IE的值用于指定使用哪个版本的呈现引擎来呈现页面。设计这个值的目的就是为了向后兼容那些专门为老版本的IE设计的站点和页面。

严格模式与混杂模式-如何触发这两种模式,区分它们有何意义相关推荐

  1. Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?

    严格模式与混杂模式--如何触发这两种模式,区分它们有何意义. 在标准模式中,浏览器根据规范呈现页面: 在混杂模式中,页面以一种比较宽松的向后兼容的方式显示. 浏览器根据DOCTYPE是否存在以及使用的 ...

  2. html严格模式和标准模式,怎么触发这两种模式

    声明位于文档的最前位置,处于标签之前,可以告诉浏览器使用哪种html/xhmtl文档 该标签有三种类型:严格版本.过度版本.以及基于框架的html文档 1.浏览器模式 标准模式:浏览器根据规范呈现页面 ...

  3. Doctype 作用? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?

    ( 1).<!DOCTYPE> 声明位于文档中的最前面,处于 <html> 标签之前.告知浏览器的 解析器,用什么文档类型 规范来解析这个文档. ( 2).严格模式的排版和 J ...

  4. Doctype作用? 严格模式与混杂模式如何区分?它们有何意义? 以及如何触发这2种模式?

    Doctype作用? 严格模式与混杂模式如何区分?它们有何意义? 以及如何触发这2种模式? a. 声明位于文档中的最前面,处于标签之前.告知浏览器以何种模式来渲染文档 b. 严格模式的排版和 JS 运 ...

  5. epoll的两种模式

    From: http://haoningabc.iteye.com/blog/1432958 linux异步IO浅析  http://hi.baidu.com/_kouu/blog/item/e225 ...

  6. 浏览器的两种模式quirks mode 和strict mode

    在看js代码时,有时会看到关于quirks mode(怪异模式)和strict mode(严格格式)的东西,一直也没深究怎么回事,只是零零碎碎的有些概念,最近终于受不了这种似懂非懂的感觉,决定好好学习 ...

  7. Spark Streaming 对比 Structured Streaming(及其内部的两种模式 MicroBatch Streaming VS Continous Streaming)

    一 前言 最近在看 Structured Streaming,先出个简单对比图,Spark Streaming VS Structured Streaming 以及 Structured Stream ...

  8. vue路由之路由的两种模式

    文章目录 简介 hash路由 history模式 两种模式的比较 history存在的问题 专栏目录请点击 简介 一般路由分两种形式 一种是哈希路由,最明显的特征就是路由中有一个# 还有一种就是his ...

  9. vue-router前端路由的两种模式的区别

    一.前端路由存在的意义 前端路由主要应用在spa项目中. 核心---在无刷新(不向后端发送请求)的情况下,可以根据不同url更改视图. 二.浏览器提供hash 和history 两种模式支持(可以说, ...

最新文章

  1. K12(在线学习的平台)
  2. 娓娓道来!那些BERT模型压缩方法
  3. 初入数据科学领域,你需要有七个这样的思维
  4. MapReduce基础开发之八HDFS文件CRUD操作
  5. android paint 线宽_android Paint 设置线宽setStrokeWidth()的单位
  6. 蓝牙4.0大数据分包处理
  7. 百度CTO王海峰出席科协年会重头论坛,展现智能云产业智能化硕果
  8. Edge浏览器,设定主页(默认打开页面)方法
  9. cocos2d-x CCArray用法 遍历和删除元素
  10. 微型计算机的工作过程是执行程序过程吗,微型计算机的工作过程和主要性能指标...
  11. 三星 安装程序无法将 配置为此计算机,三星手机怎么安装软件 三星手机无法安装软件解决办法...
  12. 故障模块名称kernelbase.dll_OBDII(OBD2)故障码库P0700P0799
  13. QAM的符号能量及比特能量
  14. 第十五届东北大学生编程大赛题解
  15. calcbusiness使用教程_Calc Business
  16. 考研政治——马克思三大定律之否定之否定
  17. Android Studio:如何使用网格布局将整个界面等比分为三行三列
  18. 过程与结果——独立思考——认真详谈
  19. gitlab同步代码时https证书错误
  20. org.quartz.JobPersistenceException: Couldn‘t store job:

热门文章

  1. linux桌面版和服务器版区别_简单普及一些linux和windows的区别,减少新入手一些云服务时的不适应...
  2. 手机防盗版本修改步骤
  3. .globl _start
  4. Three.js基本元素使用
  5. R语言和医学统计学(3):卡方检验
  6. jquery Callbacks 回调对象的读书笔记-源码分析
  7. 基于51单片机的智能火灾报警系统
  8. 苏州实时公交app接口根据站台查询公交状态
  9. SVN上传不了.so .a库可尝试的解决方法
  10. 2010年度先进单位、先进个人、优秀辅导教师名录