什么是Quirks模式
Quirks,翻译成中文就是‘怪癖’,也就是奇怪的意思,这个东西的由来要从上古时期说起了。。。当初web的世界只有两个巨人,一个是微软的IE,另一个是网景的Navigator。双方厮杀了好几年,谁都不让着谁。并且为了将各自的阵营与对方区别开,开始针对对方搞差异化,使得开发者不得不针对两种浏览器平台做两个网页。大地看到了这一切的不公,在混沌之中创造了w3c联盟,而w3c的使命就是摧毁IE和Navigator之间的壁垒,使得两个平台的代码可以通用。于是乎在w3c强大的淫威之下双方按照标准重铸了自己,而以前的各自的渲染模式则保留为quirks模式,用来兼容老式的网页了。一般现代浏览器都有3种渲染模式:quirks模式,差不多标准模式( almost standards mode),完全标准模式(full standards mode)。
如何开启传说中的Quirks模式
大家都知道一个html文件第一行都会有一个DOCTYPE标签,这个标签无外乎就几种:HTML4.01,HTML5,XHTML(注意,在DOCTYPE中注明XHTML并不会让浏览器以XHTML格式进行渲染,具体参见MDN的XHTML说明)。而开启Quirks模式很简单。。。。就是把DOCTYPE随便写。。写的浏览器根本认不出来这是什么玩意儿之后,你就成功开启了!
比如这样
<!DOCTYPE htmlxox>
或者这样
<! DOCTYPE =.= >
或者你直接不写都可以!
那么开启Quirks之后,我能得到哪些feature呢?
- table标签除了font-family外,不会继承任何字体类css。
- img标签float之后会自动有3px的mergin。
- input和textarea标签的box-sizing属性默认为border-box。
- form标签自带margin-bottom:1em属性。
- class与id的值不区分大小写。
- 当加载css文件的时候,只要link标签里type值设置为text/css,那不管服务器传来的* * * * Content-Type是什么,都会当作css处理。
- css里的颜色值不以#开头。
- css里的长度值如果没有单位,则默认为px。
- style的属性允许被{}包裹
- 当css中background值为空的时候,background url的值也被设置为空。
- body标签接受topmargin,bottommargin,leftmargin,rightmargin作为css属性。
这里我就节选一点了,具体的可以参见MDN