今天本站终于完成对IE6.0的调整,解决了原来在IE6中网页上部无法显示,导致无法注册和登陆的问题,并且侧边栏也不会跑到日志主体下面了。
并且修改了一个小的BUG。
这段时间学习CSS的过程中,觉得CSS还真是个麻烦的东西。由于没有个统一的标准,因而不同的浏览器各成一家,造成对CSS样式表的“理解”不同,引起很麻烦的兼容问题。比如IE和Firefox对width的定义不同,默认的字体大小不同,IE7与Firefox对某些定义的优先级不一样……
更讨厌的是,层中margin为负值的部分,IE6竟然干脆不显示,加上”overflow:visible”后也没有用,这完全可以说是IE6的一个BUG,一个大师级的BUG——这就是造成以前网页顶部截断的原因。而在IE7中,类似的问题就要少得多。个人还是建议使用IE7的(点击这里进入华军软件网下载页面)
尝试修改了好久,一直都是顾此失彼,最后只好放弃用同一个样式满足这3种浏览器的打算。可以说,很多网页在设计的时候,不得不为了兼容性的问题放弃一些很帅气的效果。
最终还是用CSS hack解决的,虽然hack是不符合规范的写法,如Jay所说的,在目前还没有很统一的标准这个过渡时期,用一用还是无妨的。
用hack解决兼容性问题的方法如下:
#example { background: red; } /* Moz FF */
* html #example { background: green; } /* IE6 */
*+html #example { background: yellow; } /* IE7 */
它的原理是这样的:第一行,3个浏览器都认识,但是Firefox不能理解下面2个,因此在FF中就会显示成红色。而IE6除了可以解读第一行外,还可以理解第二行,因而原来第一行的定义被后来读到的取代,从而显示出绿色。IE7同理。
不过要补充下,在兼容IE7的*+html的hack一定要在顶部加入!DOCTYPE 声明,否则无效
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN” ”http://www.w3.org/TR/html4/loose.dtd“>
并且使用hack的方法较其他方法来说,相对简单,也很有效(但是个人从来都不认为CSS hack是好的办法,只是迫不得已使用),最后终于解决了在IE6,IE7,Firefox中的兼容性问题。
上面的3个浏览器并不是全部,还有Opera,IE5.5及以下,Netscape等众多浏览器,但是看看Kael’s blog的虚拟主机的统计信息:

可以看到,在Kael’s blog申请统计服务以来的19041位访客中,使用Microsoft Internet Explorer和Mozilla Firefox已经占到了所有浏览器的98.9%,其他浏览器都不足1%。而我是以个人建站为主,完全没有必要为其他浏览器占有的那么点零星的小数点大动干戈,劳神费力了。
PS:从统计信息我们看到现在崛起的手机网络市场。
使用Netscape(网景)访问小站的人数甚至没有手机浏览器的人多。
4 comments so far