一、浏览器兼容性
作为一个国际大公司的站点,保证能在不同浏览器下的可浏览性是必须考虑的,这点IBM的做法不得不令人佩服。它巧妙的利用一个javascript(ibmcss.js)根据不同的浏览器选择不同的样式表,这也就是为什么我们直接打开保存在硬盘上的IBM页面不能看到用样式表定义的原因。
打开ibmcss.js,分析一下代码,我们就可以发现IBM一共设计了四个样式表: ie1.css , ie6.css , r1.css , ns1.css 。这四个样式表大部分都相同,主要的区别在于字体大小(font-size)的单位:ie6 里用%,r1里用px,ns1里用pt。下面是同样的一条样式在不同css里的定义:
ie6.css: body { font-family: Arial, sans-serif; font-size: 78%; }
r1.css :body,p,b,i,strong,em,dt,dd,dl,sl,caption,th,td,tr,u, blink,select, option,form,div,font,li { font-family: Arial, sans-serif; font- size: 12px; }
ns1.css: body,dt,dd,dl,sl,caption,th,td,tr,select,option,form,font { font-family: Arial, sans-serif; font-size: 9pt; }
而从对ibmcss.js里程序逻辑的分析可以得到下面样式表和浏览器的对应关系:
r1.css : Macintosh IE4.0以上,Macintosh Netscape4.0以上,Netscape5.0以上,
X11 Netscape5.0以上 (Xwindows for linux or unix,I guest :) )
ie6.css: Windows IE4.0以上,
ns1.css: 其他操作系统Netscape4.0以上
ie1.css: 其他操作系统IE4.0以上
我分别在Windows XP+IE6.0和Linux Rat hat 7.1+NS4.7两个环境下测试了这四个样式表,在IE6里四个样式表
都可以正常显示,只是字体大小略有区别;而在NS4.7里,用ie1.css和ns1.css定义的页面字体模糊不清,而用
r1.css和ie6.css显示的页面可以正常显示。
同时,IBM也考虑到了部分浏览器不支持javascript的情况,在ibmcss.js后紧跟了一句
,对于不支持javascript的浏览器将统一采用r1.css。不过这里有一点我不能理解的是为什么在head里面用了两句同样的