问候同被IE家族折腾的人们


这几天看内森被IE8折腾的不善,在此深表慰问。

其实,我也被IE家族折腾了很多年了。作为一个网虫,我可以一直使用FireFox浏览器,但是作为一个webmaster,我却绝对不能撇开IE不管,因为现实就是这样,我这有90%的网站访客使用IE。有选择么,没有。

技术层面上没什么好说的,在IE一统江湖的年代,IE就是事实标准,而W3C跟WC也差不多少了。这其实和其他行业(例如电信、广电)的垄断是一个道理:举个例子,如果IE说float: left是靠右边对齐,那所有写了float: left的图文就都会显示在窗口右边,而不管设计者的初衷是什么,也不管left这个词的含义是什么了。你可以站出来说IE你错了,但是所有IE用户会说你网页写错了。你只好昧着良心写float: right来使你的网页在IE上看起来是float: left的。于是你的网站被IE“支持”了。

好在现在很多人用上了FireFoxOperaSafari这些捍卫W3C标准的浏览器,M$终于也(被迫)开始向W3C靠拢了。于是webmaster们再一次被IE折腾,因为IE一点一点的向标准靠拢,也就是说新版IE和原来IE是不一样的。于是你昧着良心写的float: right居然在新版IE上靠右对齐了!你哭笑不得。

好在M$自己也有网站,为了让自己网站在IE6/7/8上看起来一样,M$是如此做的:

以下片段来自http://www.microsoft.com/
<style type="text/css">
@import url('http://i2.microsoft.com/shared/core/1/css/core.css');
</style>
<!--[if lt IE 7]>
<style type="text/css">
@import url('http://i2.microsoft.com/shared/core/1/css/ie6.css');
</style>
<![endif]-->
就是说,如果版本<IE 7,则装入ie6.css。看得出,M$主站是为IE7设计了,兼容IE <7。

上面的<!–[if lt IE 7]>html仅仅会被IE家族识别,而被其他浏览器忽略。这样,webmaster就可以把单独写给IE甚至是IE某个版本的css有选择的装上去了。当然,希望有一天,webmaster们不再需要这样的小技巧。

参考链接:

How to Use Different CSS Style Sheets For Different Browsers (and How to Hide CSS Code from Older Browsers)