`

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

阅读更多
  发现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)模式,这可能是为了提供特定的功能或调整用户体验。"能够识别浏览器是否处于隐身模式"这个主题涉及到的是浏览器隐私模式的检测技术。...

    Python 以无头浏览器模式使用 selenium 实现网页截屏

    这个程序使用 Chrome 浏览器的无头模式来访问百度首页,并等待3秒钟,最后将屏幕截图保存为 `baidu.png` 文件。 请注意,在使用无头浏览器时,可能需要根据网站特定的设置调整其相关参数,比如 user-agent 和 ...

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

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

    2019年中国手机浏览器用户对浏览器简洁模式认可调查.xls

    2019年中国手机浏览器用户对浏览器简洁模式认可调查.xls

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

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

    微信内置浏览器调试工具

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

    猎豹浏览器兼容模式怎么设置.docx

    ### 猎豹浏览器兼容模式设置详解 #### 一、猎豹浏览器简介 猎豹浏览器是由金山网络开发的一款基于 Chromium 和 Trident 浏览器引擎的双核浏览器。它结合了 Chromium 的速度与稳定性以及 Trident 引擎的强大兼容性...

    ABCN浏览器。浏览器。

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

    带夜间模式的浏览器

    标题中的“带夜间模式的浏览器”指的是具有夜间模式功能的互联网浏览应用,这种浏览器能够适应低光照环境,减少屏幕亮度,降低对用户眼睛的刺激,同时在夜间使用时节省电池。这种模式通常通过调整界面颜色方案,将...

    Selenium-各浏览器驱动

    4. **头部无痕模式**:为了防止浏览器窗口弹出干扰,通常在启动时会开启无头模式,例如在Chrome中: ```python options = webdriver.ChromeOptions() options.add_argument('--headless') driver = webdriver....

    跨浏览器仿模式窗体

    10. **单元测试与兼容性测试**:在开发完成后,要对仿模式窗体进行单元测试,确保所有功能正常工作。同时,进行广泛的浏览器兼容性测试,包括主流的Chrome、Firefox、Safari、Edge以及旧版本的浏览器,确保在各种...

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

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

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

    “幻灯片模式”是指图片浏览器具备一种自动连续播放图片的功能,就像传统的幻灯片投影仪一样。用户可以选择一个图片目录,设置播放间隔时间,然后软件会按照顺序逐张展示图片,创造出一种流畅的观看体验,尤其适合...

    360和搜狗浏览器兼容模式和极速模式切换登录态丢失问题.md

    360和搜狗浏览器兼容模式和极速模式切换登录态丢失问题.md

    axure浏览器插件插件

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

    web软件包装成C/S模式,实现屏蔽浏览器菜单-地址栏

    在IT行业中,Web软件通常以B/S(Browser/Server,浏览器/服务器)模式运行,用户通过浏览器访问Web应用,享受服务。然而,有些特定场景下,企业可能希望将Web软件包装成C/S(Client/Server,客户端/服务器)模式,以...

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

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

    opera浏览器设置越野模式节省流量模式使用教程.docx

    **Opera浏览器越野模式详解与设置教程** Opera浏览器是一款在全球范围内广受欢迎的网页浏览软件,以其高效、快速和独特的功能著称。其中,越野模式(Off-Road Mode)是Opera为应对网络环境不佳或者流量有限的用户...

    关于浏览器和网络的 20 项须知.epub电子书

    关于浏览器和网络的 20 项须知.epub电子书格式的 kindle导入后可读

Global site tag (gtag.js) - Google Analytics