做为网站设计者和网站开发者来说,在网站建设过程中,对网站进行跨浏览器测试是一个必须的工作。
尽管W3C的统计数字显示,约有7种浏览器,人们倾向于使用最多的,在我看来,其中两个是最重要的,应特别注意完善(Firefox和Internet Explorer) 。
以下是一些常用的浏览器工具、解决方案和Hack。
常用的浏览器
Firefox–(下载)
Internet Explorer–(下载)
Safari–(下载)
Google Chrome–(下载)
Opera–(下载)
跨浏览器工具
有时在一台电脑上安装多个浏览器会出现很多麻烦,有时同一个浏览器在一台电脑上还不能运行多个版本(例如:IE6.0+IE7.0)。下面这些工具能帮你在不同版本的浏览器中进行测试。
IE Tester http://www.my-debugbar.com/wiki/IETester/HomePage
Browser Camp http://www.browsrcamp.com/
Browser Shots http://browsershots.org
CSS Hacks
下面通过“.”,“>”,“*”,“_”来区分。以下是对这四种符号的测试结果:
————————IE6———IE7———IE8———FF2———FF3— Opera9.5
>property—— Y—— Y—— Y—— N—— N—— N
.property—— Y—— Y—— Y—— N—— N—— N
*property—— Y—— Y—— Y—— N—— N—— N
_property—— Y—— N—— N—— N—— N—— N
我们可以看到>property、.property、*property在各浏览器中的表现是一致的,只有_property在IE6和IE7、IE8中有所区别。另外还要注意的,IE6是不支持!important的,而其他几款浏览器都识别。
举例:
要对相同的文字在不同浏览器中显示不同的颜色可以使用:
color:brown !important; /*用于Opera、Firefox2、Firefox3等现代浏览器*/
>color:green !important; /*IE7、IE8可以识别该规则,因此它覆盖掉了上一条规则*/
color:red; /*所有浏览器都可以识别,但是以上两条规则有!important,所以这条规则被忽视;只有IE6认识并覆盖掉上两条规则*/
因此这就实现了跨浏览器的表现问题。_property和*property也是一样的。对于_property来说,只有IE6才能识别,因此可以用于单独对IE6的设置中。
不过这里要注意书写的顺序:现代浏览器的写法要写在最前面,IE6的写法要写在最后面用于覆盖,其他浏览器写在中间。
大多数人认为,Internet Explorer 6不支持CSS中的!important属性,这其实是一个认识误区。
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。