最全整理浏览器兼容性问题与解决方案样本

  • 格式:doc
  • 大小:133.00 KB
  • 文档页数:73

下载文档原格式

  / 73
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

常用浏览器兼容性问题与解决方案所谓浏览器兼容性问题,是指由于不同浏览器对同一段代码有不同解析,导致页面显示效果不统一状况。在大多数状况下,咱们需求是,无论顾客用什么浏览器来查看咱们网站或者登陆咱们系统,都应当是统一显示效果。因此浏览器兼容性问题是前端开发人员经常会遇到和必要要解决问题。

在学习浏览器兼容性之前,我想把前端开发人员划分为两类:

第一类是精准按照设计图开发前端开发人员,可以说是精准到1px,她们很容易就会发现设计图局限性,并且在很少状况下会遇到浏览器兼容性问题,而这些问题往往都死浏览器bug,并且她们制作页面后期易维护,代码重用问题少,可以说是比较牢固放心代码。

第二类是基本按照设计图来开发前端开发人员,诸多细枝末节差距很大,不如间距,行高,图片位置等等经常会差几px。某种效果实现也是重复调试得到,详细为什么浮现这种效果还模模糊糊,整体布局十分脆弱。稍有改动就乱七八糟。代码为什么这样写还不知因此然。此类开发人员往往经常为兼容性问题所困。修改好了这个浏览器又乱了另一种浏览器。改来改去也毫无头绪。其实她们遇到兼容性问题大某些不应当归咎于浏览器,而是她们技术自身了。

文章重要针对是第一类,严谨型开发人员,因而这里重要从浏览器解析差别角度来分析兼容性问题。

浏览器兼容问题一:不同浏览器标签默认外补丁和内补丁不同

问题症状:随便写几种标签,不加样式控制状况下,各自margin 和padding差别较大。

遇到频率:100%

解决方案:CSS里*

备注:这个是最常用也是最易解决一种浏览器兼容性问题,几乎所有CSS文献开头都会用通配符*来设立各个标签内外补丁是0。

浏览器兼容问题二:块属性标签float后,又有横行margin状况下,在IE6显示margin比设立大

问题症状:常用症状是IE6中背面一块被顶到下一行

遇到频率:90%(稍微复杂点页面都会遇到,float布局最常用浏览器兼容问题)解决方案:在float标签样式控制中加入display:inline;将其转化为行内属性

备注:咱们最惯用就是div+CSS布局了,而div就是一种典型块属性标签,横向布局时候咱们普通都是用div float实现,横向间距设立如果用margin实现,这就是一种必然会遇到兼容性问题。

浏览器兼容问题三:设立较小高度标签(普通不大于10px),在IE6,IE7,遨游中高度超过自己设立高度

问题症状:IE6、7和遨游里这个标签高度不受控制,超过自己设立高度

遇到频率:60%

解决方案:给超过高度标签设立overflow:hidden;或者设立行高line-height 不大于你设立高度。

备注:这种状况普通出当前咱们设立小圆角背景标签里。浮现这个问题因素是IE8之前浏览器都会给标签一种最小默认行高高度。虽然你标签是空,这个标签高度还是会达到默认行高。

浏览器兼容问题四:行内属性标签,设立display:block后采用float布局,又有横行margin状况,IE6间距bug

问题症状:IE6里间距比超过设立间距

遇到几率:20%

解决方案:在display:block;背面加入display:inline;display:table;

备注:行内属性标签,为了设立宽高,咱们需要设立display:block;(除了input 标签比较特殊)。在用float布局并有横向margin后,在IE6下,她就具备了块属性float后横向marginbug。但是由于它自身就是行内属性标签,因此咱们再加上display:inline话,它高宽就不可设了。这时候咱们还需要在display:inline背面加入display:talbe。

浏览器兼容问题五:图片默认有间距

问题症状:几种img标签放在一起时候,有些浏览器会有默认间距,加了问题一中提到通配符也不起作用。

遇到几率:20%

解决方案:使用float属性为img布局

备注:由于img标签是行内属性标签,因此只要不超过容器宽度,img标签都会排在一行里,但是某些浏览器img标签之间会有个间距。去掉这个间距使用float 是正道。(我一种学生使用负margin,虽然能解决,但负margin自身就是容易引起浏览器兼容问题用法,因此我禁止她们使用)

浏览器兼容问题六:标签最低高度设立min-height不兼容

问题症状:由于min-height自身就是一种不兼容CSS属性,因此设立min-height 时不能较好被各个浏览器兼容

遇到几率:5%

解决方案:如果咱们要设立一种标签最小高度200px,需要进行设立为:{min-height:200px;height:auto !ImportAnt;height:200px;overflow:visible;} 备注:在B/S系统前端开时,有诸多状况下咱们又这种需求。当内容不大于一种值(如300px)时。容器高度为300px;当内容高度不不大于这个值时,容器高度被撑高,而不是浮现滚动条。这时候咱们就会晤临这个兼容性问题。

浏览器兼容问题七:透明度兼容CSS设立

做兼容页面办法是:每写一小段代码(布局中一行或者一块)咱们都要在不同浏览器中看与否兼容,固然纯熟到一定限度就没这样麻烦了。建议经常会遇到兼容性问题新手使用。诸多兼容性问题都是由于浏览器对标签默认属性解析不同导致,只要咱们稍加设立都能轻松地解决这些兼容问题。如果咱们熟悉标签默认属性话,就能较好理解为什么会浮现兼容问题以及怎么去解决这些兼容问题。

1./* CSS hack*/

来解决。但是hacker还是非常好用。使用hacker我可以把浏览器分为3类:IE6 ;

1.height:300px;*height:200px;_height:100px;

*heihgt,因此当IE6读到*height:200px时候会覆盖掉前一条相冲突设立,以为高度是200px。继续往下读,IE6还结识_height,因此她又会覆盖掉200px高设立,把高度设立为100px;

IE7和遨游也是同样从高度300px设立往下读。当它们读到*height200px时候就停下了,由于它们不结识_height。因此它们会把高度解析为200px,剩余浏览器只结识第一种height:300px;因此她们会把高度解析为300px。由于优先级相似且想冲突属性设立后一种会覆盖掉前一种,因此书写顺序是很重要。