浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致而产生浏览器和网页间的兼容问题。在网站的设计和制作中,做好浏览器兼容,才能够让网站在不同的浏览器下都正常显示。而对于浏览器软件的开发和设计,浏览器对标准的更好兼容能够给用户更好的使用体验。
简介网页的浏览器兼容性指网页在各种浏览器上的显示效果尽量保持一致的状态,90年代末的浏览器大战开始时被广泛使用。
浏览器兼容的重要性:
网站做好了浏览器兼容,能够让网站在不同的浏览器下都正常显示
浏览器兼容能够抓住更多的网站访客
浏览器兼容能够给客户更好的体验
浏览器大战在Internet Explorer和Netscape Navigator的争战中,两个浏览器各自推出非标准的HTML语句(如Navigator的BLINK标签——闪烁效果,Internet Explorer的MARQUEE标签——跑马灯效果),以专有的特色功能分割市场。微软以此产品差异化策略(英语:Product Differentation)成功开发了一群忠实客户和数量上有一定影响的IE Only网站。
同时,网页浏览标准只规定了接口,并没有接口实现的详细规范,使得各浏览器对相同的功能使用了不同的实现方法,并导致了功能实现的差异。这些差异按程度由显示方面到核心概念的都存在。浏览器兼容性就是指标准功能在各浏览器的差异程度,差异的解决方法是为浏览器兼容。1
产生原因及解决方案因为不同浏览器使用内核及所支持的HTML(标准通用标记语言下的一个应用)等网页语言标准不同;以及用户客户端的环境不同(如分辨率不同)造成的显示效果不能达到理想效果。最常见的问题就是网页元素位置混乱,错位。
解决方案:
对于一般用户来说
应该用ie8兼容模式浏览网页, 而不应该用ie9或ie10渲染模式. 很多用户安装ie10后发生很多网页显示错乱, 就是兼容性的原因, 因为ie10默认的渲染模式是ie10. 此时应该将其改为ie7渲染模式。
为什么用ie6/7渲染模式的原因如下:
中国所有网页肯定都支持ie, 支持ie就是支持ie内核的所有浏览器. 但并不一定支持chrome, firefox, 双核浏览器的高速模式, 原因很简单, 网页开发人员没有那么多时间和精力去兼容及测试那么多浏览器, 开发人员能让网页在ie下正常工作已经不错了, 就这还老得加班呢, 还有很多新需求和bug,测试人员还要去改
渲染模式和网页打开速度几乎没有关系, 用户感觉不到.
对于网站开发者来说,当前暂没有统一的能解决这样的工具,最普遍的解决办法就是不断的在各浏览器间调试网页显示效果,通过对css样式控制以及通过脚本判断并赋予不同浏览器的解析标准。
如果所要实现的效果可以使用框架,那么还有另一个解决办法是在开发过程中使用当前比较流行的JS,CSS框架,如jQuery,YUI等等,因为这些框架无论是底层的还是应用层的一般都已经做好了浏览器兼容,所以可以放心使用。除此之外,CSS提供了很多hack接口可供使用,hack既可以实现跨浏览器的兼容,也可以实现同一浏览器不同版本的兼容。
具浏览器兼容性的网页编码方式下面是HTML和JavaScript的例子:
测试文字以上代码表示一个文字方块,距离页面左边界100px和页面上边界100px。 在Netscape Navigator 4系列中, 使用以下JavaScript移动上面的文字方块。
document.layers['sample'].left = 200;但是,在Internet Explorer 4中,则要使用不同的代码。
document.all['sample'].style.left = 200;为了移动文字方块的功能可以在两个浏览器中运行(即浏览器兼容性),须使用以下代码(在没有跨浏览器的标准操作方法时的做法)
if (document.all) document.all['sample'].style.left = 200;else if (document.layers) document.layers['sample'].left = 200;更标准的语句(推荐使用): 以下代码基于W3C标准DOM,能在Mozilla系列浏览器、Internet Explorer的新近版本和各种遵守标准标准的浏览器中。
document.getElementById('sample').style.left = '200px';兼容趋势浏览器大战后期的Internet Explorer和Netscape Navigator两大浏览器都支持HTML 4.0和CSS 1,使得许多专用语法失去意义而被废止。
客户端脚本方面,浏览器大战的产物DOM变成了浏览器间操控技术的共同界面;对专有方法已有涵盖。
浏览器市场扩大,网站为了宣称自己的兼容能力,一般都能在Mozilla Firefox、Opera、Safari和传统阵营的Internet Explorer、Netscape Navigator正常被浏览。
浏览器的兼容能力日益受到需要;浏览器亦因应趋势,使自己的浏览器提供更多兼容功能。2
本词条内容贡献者为:
李岳阳 - 副教授 - 江南大学