发布网友 发布时间:2022-05-11 16:21
共2个回答
懂视网 时间:2022-05-13 09:26
摘要我们在制作页面时必须要测的就是IE浏览器,毕竟IE浏览器市场占有率还是很高。随着HTML5的流行,可能项目要求兼容IE最低版本为IE8或者更高,但是还是有很多项目兼容IE低版本。所以我们经常会碰到页面在ie浏览器低版本中排版错乱的问题,这是因为IE浏览器有两个模式影响着页面,现在就来研究下
文档验证机制(DTD)DTD是html文件的验证机制,属于html文件组成的一部分。三种文档类型:S(Strict)、T(Transitional)、F(Frameset)。
HTML5简化了DTD,可以直接使用 。
模式模式主要是针对ie浏览器,在ie7以下,微软的代码规范与W3C制定的标准有所差别,但是ie市场占有率非常大,所以开发人员会按照微软的规范来编写代码,随着各大浏览器厂商的发展和W3C组织的努力,浏览器的标准化越来越明显。微软为了兼容ie6/7,在ie8浏览器增加了模式这个功能,这样就可以解决代码标准不一致而引起的问题。
模式分为两种一种是浏览器模式,一种是文档模式。这两种模式有什么区别呢?
对于文档模式,每个浏览器都有不同的工作模式
IE6 | IE7 | ?IE8 | ?IE9 | IE10 | Chrome | Firefox | Safari | Opera | |
混杂模式(Quriks Mode) | 有 | 有 | 有 | 有 | 有 | 有 | 有 | 有 | 有 |
接近标准模式(Almost Standards Mode) | 无 | 无 | 有 | 有 | 有 | 有 | 有 | 有 | 有 |
标准模式(Standards Mode) | 有 | 有 | 有 | 有 | 有 | 有 | 有 | 有 | 有 |
我们如何控制浏览器以何种文档模式来显示页面呢?
通过上面的代码用来指定IE浏览器以标准文档模式渲染页面,我们可以修改edge来指定特定版本,例如:IE=8
问什么要控制这个呢?很明显,加上这个元素能够告诉浏览器用什么模式来渲染页面,有时候我们在IE高版本的浏览器中显示正常,到了低版本排版就乱了,加上下面的和正确的DTD声明就可以了。
< meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />
判断当前页面的文档模式
1 2 3 4 5 6 7 8
S(标准模式)、A(接近标准模式)、Q(混杂模式)
None | Q | Q | Q | Q | Q | Q | Q | Q | Q |
Q | S | S | S | S | A | A | A | ||
? | ? | ? | ? | ? | ? | ? | ? | ||
Q | Q | Q | Q | Q | Q | Q | Q | Q | |
S | S | S | S | S | A | A | A | A | |
S | S | S | S | S | A | A | Q | A | |
S | S | S | S | S | A | A | A | A | |
S | S | S | S | S | A | A | A | A | |
Q | Q | Q | Q | Q | Q | Q | Q | Q | |
Q | Q | Q | Q | Q | Q | Q | Q | Q | |
S | S | A | A | A | A | A | A | Q | |
Q | S | A | A | A | A | A | A | Q | |
Q | Q | Q | Q | A | A | A | A | Q | |
S | S | S | S | S | A | A | A | A | |
S | S | S | S | S | A | A | A | A | |
S | S | S | S | S | A | A | A | A | |
S | S | A | A | A | A | A | A | Q | |
S | S | S | S | S | A | Q | A | Q | |
S | S | S | S | S | A | Q | A | Q | |
S | S | S | S | S | A | Q | A | Q | |
S | S | A | A | A | A | Q | A | Q | |
Q | S | S | Q | Q | Q | Q | Q | Q | |
Q | S | S | S | S | A | A | A | Q | |
S | S | S | Q | Q | Q | Q | Q | Q | |
S | S | S | S | S | A | A | A | Q |
PS:
Opera文档模式:http://www.opera.com/docs/specs/doctype/
Firefox文档模式:https://developer.mozilla.org/en-US/docs/Mozilla%27s_DOCTYPE_sniffing
IE8:http://blogs.msdn.com/b/ie/archive/2010/03/02/how-ie8-determines-document-mode.aspx
热心网友 时间:2022-05-13 06:34
a: 两种形式 dtd schema,b: 本质区别:schema本身是xml的,可以被XML解析器解析(这也是从DTD上发展schema的根本目的),c:有DOM,SAX,STAX等