文档模式和浏览器模式

1、文档模式和浏览器模式的区别?
a)“浏览器模式”(Browser Mode):
用于切换IE针对该网页的默认文档模式、对不同版本浏览器的条件注释解析、决定请求头里userAgent的值。它在浏览器发

出请求之前就已经确定,网站没有办法修改这个值。它代表的是用户以何种浏览器访问网站。IE9支持下列浏览器模式:

浏览器模式 userAgent 默认文档模式
IE7       MSIE 7.0                         IE7标准
IE8       MSIE 8.0 && Trident/4.0          IE8标准
IE9       MSIE 9.0 && Trident/5.0          IE9标准
IE9兼容性 MSIE 7.0 && Trident/5.0          IE7标准

(IE9兼容性模式与IE7模式的区别是:前者在UA里加上了Trident版本,后者和IE7完全一致无Trident标识;IE8中,IE9兼

容性模式对应为IE8兼容性模式,UA里Trident版本为4.0,其他没变化。另,IE8中没有IE9模式)

b)“文档模式”(Document Mode):
不同的文档模式对应不同的排版引擎,不同的JS引擎。上面提到,每一种浏览器模式对应一种默认的文档模式,网站还可以

通过一些手段来更改文档模式,它代表的是浏览器以何种模式呈现页面。
IE有下列文档模式:
IE7标准        7
IE8标准        8
IE9标准        9
怪异(Quirks) 5

(需要说明的是,IE8开始支持的渲染机制有:怪异模式(quirks mode)、完全标准模式(standards mode)和近似标准模

式(almost standards mode),但开发者工具是无法选择近似标准模式的,实际上我们一般都选择触发完全标准模式)

2、文档类型和文档模式?

IE5.5引入了文档模式的概念,而这个概念是通过使用文档类型(doctype)切换实现的。
最初的两种文档模式是:混杂模式(quirks mode) 和标准模式(standards mode)。混杂模式会让IE的行为与(包含非标

准特性的)IE5相同,而标准模式则让IE的行为更接近标准行为。
虽然这两种模式主要影响CSS内容的呈现,但在某些情况下也会影响到JavaScript的解释执行。

在IE引入文档模式的概念后,其他浏览器也纷纷效仿。在此之后,IE又提出一种所谓的准标准模式(almost standards

mode)。这种模式下的浏览器特性有很多都是符合标准的,但也不尽然。不标准的地方主要体现在处理图片间隙的时候(在

表格中使用图片时问题最明显)。

如果在文档开始处没有发现文档类型声明,则所有浏览器都会默认开启混杂模式。
但采用混杂模式不是什么值得推荐的做法,因为不同浏览器在这种模式下的行为差异非常大,如果不使用某些hack技术,跨

浏览器的行为根本就没有一致性可言。

a)标准模式,可以通过使用下面任何一种文档类型来开启:

<!-- 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">

b)准标准模式,可以通过使用过渡型(transitional)或框架型(frameset)文档类型来触发,如下所示:

    <!-- 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又引入了一种新的文档模式,叫做超级标准模式。超级文档模式可以让IE以其所有版本中最符合标准的方式来解释网页

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

IE8中使用下面这个特殊的<meta>值可以关闭其默认文档模式:
<meta http-equiv="X-UA-Compatible" content="IE=7" />
其中,content属性中IE的值用于指定使用哪个版本的呈现引擎来呈现页面。设计这个值的目的就是为了向后兼容那些专门

为老版本的IE设计的站点和页面。

与准标准模式类似,超级标准模式与标准模式一般也不会有什么差别。因此,本书在提到标准模式时,指的是除混杂模式之

外的其他所有模式。


3、进入页面后默认是IE7标准的原因?
当前浏览器模式为:IE10
文档类型声明:<!DOCTYPE html PUBLIC  "-//W3C//DTD XHTML 1.0 Transitional//EN"  

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
文档模式:IE7

IE下切换浏览器模式,文档模式不会变化,而切换文档模式,浏览器模式会变化为浏览器对应的模式。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值