您好,欢迎访问一九零五行业门户网

Quirks模式是什么?_html/css_WEB-ITnose

什么是doctype:
doctype,或者称为 document type declaration(文档类型声明,缩写 dtd)。通常情况下,doctype 位于一个 html 文档的最前面的
位置,位于根元素 html 的起始标签之前。这样一来,在浏览器解析 html 文档正文之前就可以确定当前文档的类型,以决定其需要采用的
渲染模式(不同的渲染模式会影响到浏览器对于 css 代码甚至 javascript 脚本的解析)。
在写程序时我们也会经常遇到这样的问题,如何保证原来的接口不变,又提供更强大的功能,尤其是新功能不兼容旧功能时。遇到这种问题时的一个常见做法 是增加参数和分支,即当某个参数为真时,我们就使用新功能,而如果这个参数 不为真时,就使用旧功能,这样就能不破坏原有的程序,又提供新功能。ie6也 是类似这样做的,它将dtd当成了这个“参数”,因为以前的页面大家都不会去写dtd,所以ie6就假定 如果写了dtd,就意味着这个页面将采用对 css支持更好的布局,而如果没有,则采用兼容之前的布局方式。这就是quirks模式(怪癖模式,诡异模式,怪异模式)。
doctype与各种模式的关系:
混杂模式:
不写doctype
近似标准模式:
标准模式:
我们可以看到,过渡型或框架型html声明与过渡型或框架型xhtml声明均可使浏览器进入近似标准模式,同时,html5的doctype声明和严
格型html声明以及严格型xhtml声明则会使浏览器进入标准模式。
三种模式下的表现差异:
首先,混杂模式是不可取的,因为其没有兼容性可言。在ie(ie6~ie9)中,混杂模式即使用ie5.5内核来解析并渲染页面。其次,近似标准
模式是在尽可能遵循标准的基础上兼容部分非标准代码,比如一些已经弃用的标签等。标准模式则是对统一标准实现最好的模式,它要求标
签必须闭合(唯一不需要闭合的就是doctype标签),不能使用已经废弃的标签等等。目前,使用最多的doctype声明为过渡型html或
xhtml,因为它能最大话的兼容一些老代码。不过,技术领先的公司(比如google、facebook、twitter等都如此)都已经使用了html5的
doctype声明,即,它所触发的模式与严格型html或严格型xhtml所触发的模式完全相同,但好处是节省代码且向前兼
容(html5时代)。
1.在quirks 模式下,ie的宽度和高度还包含了padding和border。
2.设置行内元素的高宽:在standards模式下,给等行内元素设置wdith和height都不会生效,而在quirks模式下,则会生效。margin:0 auto设置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在 quirks模式下却会失效。  ie6/7及ie8混杂模式(quirks模式)中,text- align:center可以使块级元素也居中对齐。其他浏览器中,text-align:center仅作用于行内内容上。
解决这个问题比较好的方式,就是为所有需要相对父容器居中对齐的块级元素设置“margin:0 auto”。但这个方式 ie6/ie7/ie8的混杂模式中不支持,所以还要设置父容器的 text-align:center;。
其它类似信息

推荐信息