看这最好http://en.wikipedia.org/wiki/Quirks_mode
很早就知道有怪癖模式,但是只懂其一,不只其二,今天就深入一下IE6,IE7的怪癖模式,这篇博客翻译:http://www.satzansatz.de/cssd/quirksmode.html,对其大概的解读如下:
在IE7下面运行怪癖模式,是为了给那些已经得到了页面的展示但是还想要把他们的页面代码显示在所有的IE版本的WEB工作者一个选择,而不仅仅是只喜欢运行在所有浏览器里的“标准遵循模式”下的那些童鞋,这个功能虽然不是经常使用,但是你仍然需要很好的了解一下它;
根据IE7的开发团队所讲,在IE7下运行怪癖模式和在IE6下运行怪癖模式所表现和展示的是一样的,这是向后兼容的原因;
触发怪癖模式:
在IE6中,一些文档定义类型(DTD)或者包含<xml>声明,都能引发怪癖模式或者向后兼容模式;如果这样的话,在IE6里的表现就像在IE5.5里面的表现一样,他们一起分享同样的bug、问题、行为;
在IE7里面,一个<xml>声明不再能改变渲染模式;如果有人想运行怪癖模式在所有的IE版本下,而不影响其他的浏览器,那可以在文 档定义类型(DTD)前面插入一些注释(这些注释必须在<xml>声明之后),这种方法仍然能触发怪癖模式(IE7),下面是代码展示:
<?xml version=”1.0″ encoding=”utf-8″?>
<!– … and keep IE7 in quirks mode –>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
在编写HTML 4.01页面文档时候也能在IE7里触发怪癖模式;IE6和IE7里,在DTD之前插入一个注释同样能触发向后兼容模式,如下:
<!– quirks mode –>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01//EN” “http://www.w3.org/TR/html4/strict.dtd”>
验证渲染模式:
在浏览器里,那种渲染模式并不是十分明显的,所以可在在IE的地址栏里键入如下代码验证所用的渲染模式:
javascript:alert(document.compatMode)
它会有两个值:
BackCompat 对应quirks mode
CSS1Compat 对应strict mode
那些未声明DOCTYPE或者声明了DOCTYPE但是使用的是html4以下标准,则会使用Quirks mode渲染了。(firefox和chrome测试过)