由于各大浏览器厂商对 DOM 和CSS 标准支持的程度不同,导致同样的HTML 页面在不同浏览器环境中解析不到同样的视觉界面,同时出现了有很多的CSS 解析bug,如IE 盒模型bug、IE 浮动3px bug 等,这就是浏览器兼容性问题。
在浏览器版本不断更替的发展过程中,主要浏览器厂商都发现他们的浏览器实现的CSS 特性与随后发布的DOM 和CSS 标准有所不同。
为了消除浏览器之争,打破私有代码代码的不兼容性,让Web 标准体系里的代码在所有的浏览器上都能得到正常解析,实现Web 应用程序的跨平台性,主要浏览器厂商如Microsoft、Mozilla 等共同商定由Web 应用程序开发者在HTML 页面的元素中自由选择是否添加<!DOCTYPE>标记,以确定文档是遵循旧的quirks 方式还是标准兼容模型。
可以使用如下的方法在元素中包含标记来实现浏览器的兼容性:[code]
[/code]由于IE5.5 以下版本的浏览器忽略了标准兼容模型,他们不适用标记而用旧的quirks 方式。在目前主流浏览器中,所有基于Mozilla、WinIE6 和MacIE5 及以上版本的浏览器中都实现了浏览器兼容性策略,从而使用<!DOCTYPE>标记更有可能通过不同浏览器实现相同的视觉界面。