关闭

浏览器标准模式(standars mode)与怪异模式(Quirks mode)浅析

标签: 浏览器标准模式浏览器怪异模式w3c标准怪异盒模型产生原因
139人阅读 评论(0) 收藏 举报
分类:

标准模式与怪异模式产生原因

在W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异(Quirks mode或者称为Compatibility Mode);由于W3C标准的推出,浏览器渲染页面有了统一的标准(CSScompat或称为Strict mode也有叫做Standars mode)。

W3C标准推出以后,浏览器都开始采纳新标准,但存在一个问题就是如何保证旧的网页还能继续浏览,在标准出来以前,很多页面都是根据旧的渲染方法编写的,如果用的标准来渲染,将导致页面显示异常。为保持浏览器渲染的兼容性,使以前的页面能够正常浏览,浏览器都保留了旧的渲染方法(如:微软的IE)。这样浏览器渲染上就产生了Quircks mode和Standars mode,两种渲染方法共存在一个浏览器上。

火狐的始终表现的很一致,不种我们操心。重点是IE(6,7,8)标准模式与怪异模式差别很大,主要体现在对盒子模型的解释上。


渲染模式

浏览器会通过识别DTD(document type definition 文档类型定义)而采用相对应的渲染模式

  • 浏览器对没有doctype声明的网页采用quirks mode解析
  • 对于拥有doctype声明的网页,但浏览器不能识别的doctype声明,浏览器采用strict mode解析
  • 没有使用DTD声明或者使用HTML4以下(不包括HTML4)的DTD声明时,基本所有的浏览器都是使用quirks mode呈现,其他的则使用strict mode解析
  • 在现有有doctype声明的网页,绝大多数是采用strict mode进行解析的
  • 在ie6中,如果在doctype声明前有一个xml声明,则采用quirks mode解析。这条规则在ie7中已经移除了
微软的 Internet Explorer 6 浏览器,如果 DOCTYPE 之前有一个 XML 声明,不管是否指定完整的DOCTYPE,它就会以 quirks 模式渲染一个页面。因此以如下代码开始的 XHTML 页面会被 IE 6 渲染为 quirks 模式:

<?xml version="1.0"encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

在一定程度上,上述代码是有用的,然而它仅仅会对 IE 6 触发怪异模式。

如果 DOCTYPE 之前有任何语句,quirks 模式在任何版本的 IE 中(截至 IE 9)同样会被触发。例如,如果一个超文本文件在 DOCTYPE 前包含一个注释或者任何标签,IE (截至 9) 会使用 quirks 模式:

<!-- This comment will put IE 6, 7, 8,and 9 in quirks mode -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTDHTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

XML 声明的问题在Internet Explorer 7 中被解决了,在此 XML 声明只是简单的被忽略。然而,为对现存和更早的网页浏览器的最大程度的兼容,万维网联盟,维持 XML 规范的组织,建议 XHTML文件的作者可以考虑省略XML 声明。

判断浏览器模式

js方法
   alert(window.top.document.compatMode)
   //BackCompat  怪异模式
   //CSS1Compat  标准模式

jquery方法
  alert($.boxModel)
  alert($.support.boxModel)
0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:4240次
    • 积分:187
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:6篇
    • 译文:0篇
    • 评论:1条
    最新评论