`
dubadiyu
  • 浏览: 18263 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

(转)如何在页面中设置IE浏览器的文档模式

    博客分类:
  • IE
 
阅读更多

原文地址:http://www.haogongju.net/art/2066011

最近在使用一个开源框架,发现该框架能跨浏览器和版本,但唯独在IE下的Quirks Model下表现不太好。 

一开始想着如何自己去完善在该模式下的问题,后来一想为何不找到一种方法,在代码里面设置好让页面在IE浏览器下面不呈现Quirks Model呢? 

于是在网上找资料,发现了原来可以通过DTD的声明来让浏览器决定用何种模式。 

我把 

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

改为  

 

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/html4/strict.dtd">

 

 

就不会出现Quirks Model了,问题也就解决了 

================================ 
参考资料: 

标准模式与怪异模式: 
       由于历史的原因,各个浏览器在对页面的渲染上存在差异,甚至同一浏览器在不同版本中,对页面的渲染也不同。在W3C标准出台以前,浏览器在对页面的渲染上没有统一规范,产生了差异(Quirks mode或者称为Compatibility Mode);由于W3C标准的推出,浏览器渲染页面有了统一的标准(CSScompat或称为Strict mode也有叫做Standars mode),这就是二者最简单的区别。 

    W3C标准推出以后,浏览器都开始采纳新标准,但存在一个问题就是如何保证旧的网页还能继续浏览,在标准出来以前,很多页面都是根据旧的渲染方法编写的, 如果用的标准来渲染,将导致页面显示异常。为保持浏览器渲染的兼容性,使以前的页面能够正常浏览,浏览器都保留了旧的渲染方法(如:微软的IE)。这样浏览器渲染上就产生了Quircks mode和Standars mode,两种渲染方法共存在一个浏览器上。 
    
火狐一直工作在标准模式下,但IE(6,7,8)标准模式与怪异模式差别很大,主要体现在对盒子模型的解释上,这个很重要,下面就重点说这个。 



那么浏览器究竟该采用哪种模式渲染呢?这就引出的DTD,既是网页的头部声明,浏览器会通过识别DTD而采用相对应的渲染模式: 

1. 浏览器要使老旧的网页正常工作,但这部分网页是没有doctype声明的,所以浏览器对没有doctype声明的网页采用quirks mode解析。 
2. 对于拥有doctype声明的网页,什么浏览器采用何种模式解析,这里有一张详细列表可参考:http://hsivonen.iki.fi/doctype/ 
3. 对于拥有doctype声明的网页,这里有几条简单的规则可用于判断:对于那些浏览器不能识别的doctype声明,浏览器采用strict mode解析 
4. 在doctype声明中,没有使用DTD声明或者使用HTML4以下(不包括HTML4)的DTD声明时,基本所有的浏览器都是使用quirks mode呈现,其他的则使用strict mode解析。 
5. 可以这么说,在现有有doctype声明的网页,绝大多数是采用strict mode进行解析的。 
6. 在ie6中,如果在doctype声明前有一个xml声明(比如:<?xml version="1.0" encoding="iso-8859-1"?>),则采用quirks mode解析。这条规则在ie7中已经移除了。 


如何设置为怪异模式: 
方法一:在页面项部加 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
我们用Eclipse的HTML模板新建的html页面,自动就有上面东东 

方法二:什么也不加。 


如何设置为标准模式: 
加入以下任意一种: 
HTML4提供了三种DOCTYPE可选择: 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> 

XHTML1.0提供了三种DOCTYPE可选择: 
(1)过渡型(Transitional ) 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
(2)严格型(Strict ) 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
(3)框架型(Frameset ) 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> 


这里有一张详细列表可参考:http://hsivonen.iki.fi/doctype/ 



如何判定现在是标准模式还是怪异模式: 

方法一:执行以下代码 
alert(window.top.document.compatMode) ; 
//BackCompat  表示怪异模式 
//CSS1Compat  表示标准模式 
方法二:jquery为我们提供的方法,如下: 
alert($.boxModel) 
alert($.support.boxModel) 



IE6,7,8浏览器的标准模式还是怪异模式 盒子模型的 差异 

 


 


详细说明:http://hsivonen.iki.fi/doctype/

分享到:
评论

相关推荐

    文档模式与IE浏览器模式

    ### 文档模式与IE浏览器模式 #### 一、引言 随着Web技术的不断发展与变化,不同的浏览器在处理HTML和CSS的方式上存在着细微差异。为了兼容各种基于不同标准开发的网站,微软在Internet Explorer 8及之后的版本中...

    谷歌浏览器js打开IE浏览器.rar

    由于IE浏览器的某些特性和标准支持与其他现代浏览器存在差异,因此在某些情况下,我们需要在Chrome中通过脚本触发IE浏览器的启动。这个压缩包"谷歌浏览器js打开IE浏览器.rar"提供了一种方法来实现这个功能。 首先,...

    IE浏览器,让大家分享下喔,全部初学者做开发使用

    IE浏览器由于其历史遗留的渲染引擎 Trident,处理CSS和JavaScript的方式与其他现代浏览器有所不同,这可能导致页面在IE上显示不正常。因此,开发者需要学习如何使用条件注释、DOCTYPE声明以及各种前端框架(如...

    IE兼容模式怎么设置.pdf

    - 在开发人员工具中选择“文档模式”,然后从下拉菜单中选择需要模拟的旧版IE浏览器版本。 除了上述设置方法,有时候还需要将特定网站添加到信任区域,来解决兼容性问题: - 打开IE选项,在常规标签下找到“更改...

    [资源分享]解决Win10下IE浏览器树形控件treeview无法显示的问题

    1. **浏览器兼容性**:首先,我们需要确认问题是否由IE浏览器的版本或兼容模式设置引起。某些版本的IE可能不支持特定的树形控件或者需要特定的设置才能正确显示。检查浏览器的更新状态,确保已安装最新的安全补丁和...

    基于MFC的ie浏览器源代码

    在MFC IE浏览器中,可能需要实现BHO来处理特定的网页行为或者添加自定义功能。 2. **WebBrowser控件**:这是IE浏览器的核心,它是ActiveX控件,允许嵌入到其他应用程序中,提供浏览网页的能力。在MFC中,可以通过`...

    HTML5 兼容IE浏览器

    这篇博客将探讨如何确保HTML5页面在IE浏览器上正常工作。 首先,了解IE浏览器对HTML5的支持情况至关重要。Internet Explorer 8及更早版本不支持许多HTML5的新特性,而从IE9开始,微软开始逐步提高对HTML5的兼容性。...

    IE浏览器经典故障大全

    **IE浏览器经典故障大全** IE(Internet Explorer)作为曾经最广泛使用的网络浏览器,其发展历程中积累了大量的用户问题和故障案例。这些故障可能涉及到浏览器的性能、兼容性、安全性和功能等多个方面。以下是一些...

    非IE浏览器(谷歌、火狐、Edge)使用IE打开指定链接

    本文将详细讲解如何在非IE浏览器中设置和使用兼容模式,以便在这些现代浏览器中通过IE打开指定链接。 首先,让我们了解为什么有些网站需要在IE中打开。许多老旧的企业系统和内部应用依赖于ActiveX控件、VBScript等...

    解决IE浏览器兼容问题

    1. **DOCTYPE声明**:IE浏览器在不同的文档模式下解析页面的方式不同,DOCTYPE声明可以影响浏览器进入何种模式。例如,使用`&lt;!DOCTYPE html&gt;`声明可使IE8以上版本进入标准模式,而旧的DOCTYPE可能导致浏览器进入 ...

    判断IE8兼容性视图工作模式

    这个属性在IE8及以上版本中引入,用于指示当前浏览器的文档模式。在标准模式下,`document.documentMode`将返回对应的IE版本号(如8),而在兼容性视图下,它可能返回7(模拟IE7)或其他更低的值。以下是一个简单的...

    IE浏览器兼容

    13. **IE的内存泄漏**:IE浏览器在处理DOM对象时可能存在内存泄漏问题,合理管理DOM节点和事件监听器可减轻这个问题。 14. **Flash和Silverlight**:对于视频、音频或交互式内容,虽然现代浏览器更倾向于HTML5,但...

    JS获取IE版本号与HTML设置IE文档模式的方法

    - 为了确保网页在不同版本的IE浏览器中能够以正确的文档模式渲染,可以通过`&lt;meta&gt;`标签指定兼容性设置。 - 使用`http-equiv="X-UA-Compatible"`属性来告诉浏览器应该使用哪种文档模式来渲染页面。 - 例如,要...

    斑马Magicard打印机 IE浏览器打印插件

    斑马Magicard打印机的IE浏览器打印插件是基于IE浏览器的ActiveX技术,ActiveX是一种由微软开发的技术,用于在Web页面上提供丰富的交互式体验。这个插件作为一个控件,嵌入到IE浏览器中,使得用户无需下载文件或离开...

    IETester多版本ie浏览器,调试工具

    4. **模拟器功能**:IETester不仅能展示页面的实际渲染效果,还能模拟不同的文档模式(Quirks Mode、IE7 Standards、IE8 Standards等),帮助开发者理解在特定模式下页面的显示差异。 5. **用户代理切换**:...

    完美解决jsp页面在IE8下文本模式自动为(杂项Quirks)导致页面显示错位

    DOCTYPE html&gt;文档都上方的,但是在IE8浏览文本模式默认就编程了“Quirks”模式,显示不正常,后来改成了写在文档头下方就可以正常显示了,经过这次吸取了教训,也希望给遇到此类问题的同学一个借鉴的灵感!...

    c# IE浏览器含源码

    在C#中,`System.Windows.Forms.WebBrowser`控件是一个关键组件,它允许在Windows应用程序中嵌入一个网页浏览功能,模拟IE浏览器的行为。这个控件提供了导航、加载HTML、执行JavaScript以及获取网页内容等能力。 在...

    IE7与IE8的兼容性 配置文档

    总之,IE7与IE8的兼容性配置文档旨在帮助开发者和网站管理员通过简单的HTTP头或HTML元数据的调整,确保网站在不同版本的IE浏览器中能够正常显示,避免因浏览器版本更新带来的兼容性难题。在实际操作中,根据网站的...

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

    `X-UA-Compatible`是解决IE浏览器兼容性问题的关键工具,它允许开发者控制页面在不同IE版本下的行为,从而确保网站的稳定性和一致性。随着Web标准的发展和新浏览器的推出,理解并适当地使用`X-UA-Compatible`对于...

    深入理解指定IE浏览器渲染方式

    为了控制IE浏览器以何种方式来解析页面,开发人员可以使用`&lt;meta&gt;`标签来指定IE的渲染方式,从而改善网页在IE浏览器中的显示效果。 首先,`&lt;meta&gt;`标签中的`http-equiv`属性可以设置为`X-UA-Compatible`,其目的是...

Global site tag (gtag.js) - Google Analytics