`

关于浏览器的怪异模式要注意的地方

阅读更多
  发现IE  9和8下(自己用的是ie 10)在浏览某些页面的时候,发现F12时文档模式那里,用的是
QUICK模式,原来这个叫怪异模式,摘录下定义,详细见:
http://zh.wikipedia.org/zh-cn/%E6%80%AA%E5%BC%82%E6%A8%A1%E5%BC%8F

先看看什么是quirk模式,引用一段:http://www.microsoft.com/china/msdn/library/webservices/asp.net/ASPNETusStan.mspx?mfr=true

复制代码
为 Web页指定 DOCTYPE 会影响浏览器呈现页的方式。Internet Explorer、Mozilla Firefox 和 Opera 全都支持一种名为“DOCTYPE 切换”(也叫“DOCTYPE 嗅探”)的功能。

引入 DOCTYPE 切换的目的是使浏览器能够正确地呈现符合标准的 Web 站点以及旧式 Web 站点。大多数 Web 站点被开发为呈现 HTML 页而不是 XHTML 页。浏览器通过判断是否存在 DOCTYPE 来确定何时应该使用标准来呈现页。

Internet Explorer 6+ 支持两种呈现模式,分别叫做 Quirks 模式和 Standards 模式。当 Internet Explorer 呈现包含有效 XHTML(或 HTML 4.0)DOCTYPE 的页时,它会以 Standards 模式呈现该页;否则,它会以 Quirks模式呈现该页(有关详细信息,请参阅 CSS Enhancements in Internet Explorer 6)。

Opera 浏览器 (Opera 7+) 支持与 Internet Explorer 相同的两种呈现模式:Quirks 和 Standards(有关详细信息,请参阅 http://www.opera.com/docs/specs/doctype/)。

Mozilla Firefox 1+ 支持三种呈现模式:Quirks 模式、Almost Standards 模式和 Standards 模式。Firefox 的 Almost Standards 模式对应于 Internet Explorer 和 Opera 的 Standards 模式。当页包含有效的 XHTML 1.0 Transitional DOCTYPE(并且该页被分配为 text/html MIME 类型)时,Firefox 会以 Almost Standards 模式呈现该页。当页包含 XHTML 1.0 Strict 或 XHTML 1.1 DOCTYPE(或者该页被分配为 XML MIME 类型)时,该页将以 Standards 模式呈现(有关详细信息,请参阅 http://www.mozilla.org/docs/web-developer/quirks/doctypes.html)。

可以通过临时向页中添加以下客户端脚本(该脚本在最新版本的 Internet Explorer、Firefox 和 Opera 中有效)确定浏览器的当前呈现模式。

<script type="text/javascript"> alert( document.compatMode ); </script>
您需要关心浏览器的呈现模式,因为它会影响将层叠样式表应用于该页的方式。如果将现有 HTML 页转换为 XHTML 页,那么在浏览器中打开它们时,它们可能看起来非常不同。

例如,Internet Explorer 以不同方式计算页元素的大小,这取决于呈现模式(它使用不同的 CSS Box Model)。在 Quirks 模式下,元素的宽度是通过将元素的内容、内边距、边框和边距相加而计算得到的。在 Standards 模式下,元素的宽度是只考虑元素内容的宽度而计算得到的。

复制代码
Quirks模式与Standards模式的区别
quirks和standards的区别很多都可以归为IE5和IE6的区别。

盒模型的高宽包含内补丁和边框
在W3C标准中,如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度,而在Quirks模式下,IE的宽度和高度还包含了padding和border。IE5.5及以下的浏览器即使在Standards模式下,也会有这个问题
可以设置行内元素的高宽
在Standards模式下,给span等行内元素设置wdith和height都不会生效,而在quirks模式下,则会生效
可设置百分比的高度
在standards模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置百分比的高度,子元素设置一个百分比的高度是无效的
用margin:0 auto设置水平居中在IE下会失效
使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下却会失效,quirk模式下的解决办法,用text-align属性:
body{text-align:center};#{content:text-align:left}
设置图片的padding会失效
  Table中的字体属性不能继承上层的设置
white-space: pre会失效


--------------------------------------------------
当微软开始产生与标准兼容的浏览器时,他们希望确保向后兼容性。为了实现这一点,他们IE6.0以后的版本在浏览器内嵌了两种表现模式: Standards Mode(标准模式或Strict Mode)和Quirks mode(怪异模式或兼容模式Compatibility Mode)。在标准模式中,浏览器根据W3C所定的规范来显示页面;而在怪异模式中,页面将以IE5,甚至IE4的显示页面的方式来表现,以保持以前的网 页能正常显示。
对于这两种模式引起最大的问题就是盒模式的问题,或者现在大家已经忽视了IE5的存在,但是,IE在怪异模式运行的盒模式依然在最新版本的IE7保留着,一旦应用不得当,IE7将变成跟IE5一样愚蠢。
当然,不只IE浏览器存在两种模式。
Opera 浏览器 (Opera 7~8) 支持与 IE 相同的两种呈现模式:Quirks Mode和 Standards Mode(有关详细信息,请参阅 http://www.opera.com/docs/specs/doctype/),但是Opera9的Quirks Mode又不与之前的Quirks Mode呈现不一样,比如不再兼容IE5那种盒模式。
Mozilla Firefox 1+ 支持三种呈现模式:Quirks Mode、Almost Standards Mode(几乎标准的模式)和 Standards Mode。Firefox 的 Almost Standards 模式对应于 IE 和 Opera 的 Standards 模式。其中的Almost Standards Mode,除了在处理表格的方式方面有一些细微的差异之外,这种模式与标准模式基本相同。对于进入Quirks Mode的可参考http://www.mozilla.org/docs/web-developer/quirks/doctypes.html)


----------------------------------

  为了解决这个问题,能让用户浏览页面的时候默认就使用标准模式,则需要声明好DTD就可以了,使用的是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 就可以了
分享到:
评论

相关推荐

    解决360双核浏览器兼容模式的页面显示问题

    360浏览器在处理双核切换的过程中,可能会因为内核版本的不同导致某些网站在兼容模式下出现显示问题。 在360浏览器中,对于需要使用IE内核进行渲染的网站,可能存在兼容性问题,尤其是当页面中需要执行JavaScript...

    能够识别浏览器是否处于隐身模式

    在JavaScript开发中,有时我们需要检测用户的浏览器是否处于隐身(Incognito)模式,这可能是为了提供特定的功能或调整用户体验。"能够识别浏览器是否处于隐身模式"这个主题涉及到的是浏览器隐私模式的检测技术。...

    护眼插件-浏览器夜间模式

    浏览器夜间模式是一种旨在减少屏幕亮度和蓝光对眼睛刺激的功能,尤其...尽管护眼插件提供了一定的视觉舒适度,但也要注意定期休息,避免长时间连续看屏幕,同时保持良好的坐姿和适当的屏幕距离,以全方位保护眼睛健康。

    带夜间模式的浏览器

    值得注意的是,虽然通过文件名称列表中的图片和文本文件,我们可以对这款浏览器的外观和部分功能有所了解,但对于其更为深入的技术细节,例如浏览器内核、安全措施、数据加密等方面,还需要通过更多渠道获得信息。...

    了解网页浏览模式 360安全浏览器内置了两种网页浏览模式:极速模式和兼容模式,我们会自动为您选择使用适合每个网站的浏览模式。点击地址栏的内核切换按

    了解网页浏览模式 360安全浏览器内置了两种网页浏览模式:极速模式和兼容模式,我们会自动为您选择使用适合每个网站的浏览模式。点击地址栏的内核切换按

    搜狗高速浏览器兼容模式怎么设置.docx

    但需要注意的是,在安装和使用扩展插件时,也要考虑其对浏览器性能和安全性的影响。 总结来说,搜狗高速浏览器的兼容模式为我们提供了一个简单而有效的解决网页兼容性问题的方法。通过上述介绍的方法,用户可以轻松...

    行业数据-2019年中国手机浏览器用户对浏览器简洁模式认可调查.rar

    简洁模式通常指的是浏览器在提供基本浏览功能的同时,减少不必要的广告、插件和复杂设置,以提供更快速、更清爽的上网体验。在移动设备上,这种模式尤其受到重视,因为它可以节省流量,提高加载速度,以及降低用户的...

    本地测试浏览器模式选择

    在进行本地测试浏览器模式选择时,我们关注的核心是模拟不同浏览器环境以确保网站或应用程序的兼容性和性能。这个过程对于开发者来说至关重要,因为用户可能使用各种浏览器和版本来访问我们的应用,我们需要确保它们...

    微信内置浏览器调试工具

    微信内置浏览器调试工具 微信调试 公众号调试 微信浏览器调试

    ABCN浏览器。浏览器。

    浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。浏览器。...

    最全的设置浏览器兼容模式资源

    对于不是非常了解计算机的小白来说,本文档可以帮助你解决设置浏览器的兼容模式。以帮助大家!

    IE6浏览器兼容问题总结及CSS排版注意地方

    IE6浏览器兼容问题总结及CSS排版注意地方 列举IE6中10个不得不注意的问题 重构你的代码

    UC浏览器酷影模式是什么.docx

    值得注意的是,酷影模式是完全免费的功能,用户只需安装最新的UC浏览器Android或iOS版本即可享受。 总之,UC浏览器的酷影模式通过一系列智能技术和优化,为移动设备用户提供了更佳的浏览体验,既提高了速度,又节省...

    图片浏览器,模拟我的电脑显示方式以及幻灯片模式

    本文将详细介绍一个基于VB.Net开发的图片浏览器,它不仅提供了类似于Windows“我的电脑”式的文件浏览体验,还支持幻灯片模式下的连续图片展示功能。 在软件的开发中,界面设计和用户体验的直观性是关键。这款图片...

    axure浏览器插件插件

    axure浏览器插件axure浏览器插件axure浏览器插件axure浏览器插件axure浏览器插件axuraxure浏览器插axure浏览器插件axure浏览器插件axure浏览器插件axure浏览器插件axure浏览器插件axuraxure浏览器插件axure浏览器...

    IE8浏览器如何确定文档模式.docx

    1. 如果文档类型是怪异模式,那么浏览器将以怪异模式渲染网页。 2. 如果文档类型是 Transitional,那么浏览器将以准标准模式渲染网页。 3. 如果 X-UA-Compatible meta 标签或头部指定了 IE7 标准模式,那么浏览器将...

    自制浏览器 精简模式看网页电影 源码

    快捷键: Ctrl+B 显示/隐藏最前端精简模式。 Ctrl+G 隐藏/显示网页中的滚动条。...3.将本程序窗口放在合适的地方,Ctrl+B显示精简模式。 这样看土豆就可以和看ppstream等一样的精简模式观看了。 Have a good day!

    全屏浏览器、浏览器

    这种浏览器通常会隐藏菜单栏、地址栏以及其他可能分散用户注意力的元素,使得用户可以专注于内容本身,尤其适用于演示、在线学习或者全屏游戏等场景。"浏览器"一词则涵盖了所有能够访问和展示Web内容的软件工具,...

    修改/增加chrom浏览器请求头

    在实际操作中,要修改Chrome浏览器的请求头,可以使用如ModHeader这样的扩展,也可以借助开发者工具(DevTools)的Network面板手动添加或修改请求头。对于开发者而言,掌握这些技巧对于优化网页加载、排查网络问题、...

    透明浏览器,可以设置透明度的浏览器

    然而,值得注意的是,虽然透明浏览器在一定程度上提供了隐私保护,但它并不能保证完全的匿名性。浏览器的浏览记录、缓存、cookies等仍然可能被追踪,因此,如果涉及到高度敏感的信息,用户还需要配合其他隐私保护...

Global site tag (gtag.js) - Google Analytics