a list apart 上的
一篇文章很火爆,自从IE7 把很多网站搞乱了以来,微软在不断的寻求各个标准组织的支持,特别是WaSP,希望可以解决在兼容标准的情况下又不break已有网站的方案。
IE6的解决方案是,加入DOCTYPE,如果开发者使用了DOCTYPE,并且指定了正确的DOCTYPE,那么浏览器将按照符合标准的方式进行渲染。否则将按照IE5以来的微软bug模式渲染。
相应的问题是
1. egged on by A List Apart and The Web Standards Project, well-intentioned developers of authoring tools began inserting valid, complete DOCTYPEs into the markup their tools generated; and
2. IE6’s rendering behavior was not updated for five years, leading many developers to assume its rendering was both accurate and unlikely to change.
所以当IE7真正开始对那些指定了严格条件的网页进行渲染的时候,那些实际上不清楚标准但是误加入了DOCTYPE的网站,broken了。
对于IE8以及其他的浏览器,最新的建议是,加入如下的meta标签
<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4" />同时,新版本的浏览器支持多种渲染模式(兼容本浏览器旧版本的渲染模式的bug等等)。这样,不管用户如何升级浏览器,都不会出现现在的用户升级到IE7后网站坏掉的情况了。
同时,文章提出这可能与 progressive enhancement 的概念相违背。不过可想而知的是,站点的稳定性显然比某些新功能更重要。引入新功能,在浏览器升级后,及时将自己开发的产品切换到新浏览器版本下是开发者的责任,而不是说,在用户升级浏览器后,不停的电话到客服希望赶快可以修复网站。
还可以加入如下标签表示一直支持最新版本(这不正是当今我们做的事情吗?):
<meta http-equiv="X-UA-Compatible" content="IE=edge" />其实,我想如果不加这个标签,应该也是这个效果吧?
另外,这显然
不是浏览器探测啊,浏览器探测的开发,是需要开发多个处理方案的(想想那些js lib的工作),而这样的浏览器指定,是只需要开发一套的。
嗯,等着各个浏览器的安装文件越来越大吧