浏览器的兼容性
浏览器兼容性问题又被称为网页兼容性或网站兼容性问题,指网页在各种浏览器上的显示效果可能不一致而产生浏览器和网页间的兼容问题。在网站的设计和制作 中,做好浏览器兼容,才能够让网站在不同的浏览器下都正常显示。而对于浏览器软件的开发和设计,浏览器对标准的更好兼容能够给用户更好的使用体验。
兼容问题产生的原因:
因为不同浏览器使用内核及所支持的HTML(标准通用标记语言下的一个应用)等网页语言标准不同;以及用户客户端的环境不同(如分辨率不同)造成的显示效果不能达到理想效果。最常见的问题就是网页元素位置混乱,错位。
解决方案:
对于一般用户来说
应该用ie8兼容模式浏览网页, 而不应该用ie9或ie10渲染模式. 很多用户安装ie10后发生很多网页显示错乱, 就是兼容性的原因, 因为ie10默认的渲染模式是ie10. 此时应该将其改为ie7渲染模式。
为什么用ie6/7渲染模式的原因如下:
中国所有网页肯定都支持ie, 支持ie就是支持ie内核的所有浏览器. 但并不一定支持chrome, firefox, 双核浏览器的高速模式, 原因很简单, 网页开发人员没有那么多时间和精力去兼容及测试那么多浏览器, 开发人员能让网页在ie下正常工作已经不错了, 就这还老得加班呢, 还有很多新需求和bug,测试人员还要去改[1]
渲染模式和网页打开速度几乎没有关系, 用户感觉不到.
对于网站开发者来说
目前暂没有统一的能解决这样的工具,最普遍的解决办法就是不断的在各浏览器间调试网页显示效果,通过对css样式控制以及通过脚本判断并赋予不同浏览器的解析标准。
如果所要实现的效果可以使用框架,那么还有另一个解决办法是在开发过程中使用当前比较流行的JS,CSS框架框架,如jQuery,YUI等等,因为这些框架无论是底层的还是应用层的一般都已经做好了浏览器兼容,所以可以放心使用。除此之外,CSS提供了很多hack接口可供使用,hack既可以实现跨浏览器的兼容,也可以实现同一浏览器不同版本的兼容。
CSS技巧:
1. 在不同的浏览器下,盒模型的内外补丁可能会有很大差异(padding和margin)
解决方案:在CSS里设置{margin:0;padding:0;}几乎所有的CSS文件开头都会用通配符来设置各个标签的内外边距是0.
2.块属性标签float后又有横行的margin情况下,在ie6显示margin比设置的大,如后面浮动的一块会被顶到下一行。
解决方案:在float标签中加入display:inline;将其转化为行内属性
3.设置最小高度标签(一般小于10px;),但在ie6,ie7中会超出自己设置的高度
解决方案:给超出高度的标签设置overflow:hidden;货值设置行高line-height小于你设置的高度。
4.行内属性标签,设置display:block后采用float布局,又有横行的margin的情况。
解决方案:在display:block;后面加入display:inline;display:table;
5.图片默认有间距:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了通配符也不起作用。
解决方案:使用float属性为img布局(最好不要使用负的margin间距,会容易引起新的浏览器的兼容问题)
6.标签的最低高度设置min-height不兼容(其实min-height本省就是一个不兼容的CSS属性,所以设置它时常常不能被各个浏览器兼容)
解决方案:若设置一个标签的最小高度200px;应这样设置{min-height:200px;height:auto !Important;overflow:visible}
还有一些常见的CSS兼容问题:
(1)div的垂直居中问题 vertical:middle;将行距增加到和整个div一样高line-height:200px;然后插入文字,就垂直居中了。缺点是要控制内容不要换行。
(2)margin加倍的问题 设置float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;列如:<#div id=“imfloat”>
















