浏览器常见的兼容问题

什么是浏览器的兼容问题

       浏览器的兼容性问题也就是网页的兼容性或者网站兼容性问题, 指网页在各种浏览器上的css表现形式不同而产生的浏览器和网页间的兼容问题. 又或者不同浏览器对javaScript脚本中的一些方法的识别不同.

       兼容问题最多的是IE低版本浏览器, windows_XP系统的浏览器版本是IE6-8, window7支持IE9-11, 一般做到兼容IE6

       浏览器兼容的几个方面:                                                                                                                       1.html 以及 css样式                                                                                                                             2.H5, CSS3新特性
      3.js脚本一些方法的支持


CSS样式的兼容

CSS样式的兼容是前端工作中不可避免并且相当复杂的一项内容。

当代浏览器都支持 CSS ,但是由于不同的浏览器对CSS解释不同,不同的浏览器的默认值表现的差别:

IE默认margin
FF默认padding

导致在不同浏览器中打开我们做好的页面时,会显示混乱。

常见的兼容问题:

1.IE浏览器给图片加超链接时,图片会自动加上边框(紫色两像素的边框)
    解决方案:img{border:none/0}
2.不同浏览器的标签默认的外边距和内田冲不同
    问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
    解决方案:*{margin:0;padding:0;}
3.IE6浮动元素横向margin加倍(产生因素:一个块元素、float:left、margin-left:5px时 ,显      示的margin为10px;行内元素没有上下外边距,有左右外边距。)
    解决方案:display:inline;使浮动忽略IE下再解析为5px
4.margin:0 auto,对IE6不起作用
    解决方案:给body{text-align:center}
5.经典3像素bug:IE6浏览器,浮动块元素与未浮动块元素处于同一行,有默认的3px间距。
    解决方案:设置非浮动元素浮动
6.高度自适应问题(最小高度)IE6不认识min-height,IE6里的内容会自动撑开
    解决方案:div { height:auto!important; height:200px; min-height:200px; }
7.opacity 定义元素的透明度
    解决方案:filter:alpha(opacity=80);/*ie支持该属性*/
                      opacity:0.8;/*支持css3的浏览器*/
8.游标手指cursor
    解决方案:cursor: pointer 可以同时在 IE Chrome 等中显示游标手指状, hand 仅 IE 可以

IE9以下版本浏览器兼容HTML5的方法

使用菜鸟的静态资源html5shiv包

使用条件注释法引入包

<!--[if It IE 9]>
      <script src="http://cdn.static.runoob.com/libs/html5shiv/3.7/html5shiv.min.js ">
      </script>
<![end if]-->

并且在样式表中初始化新标签的CSS:
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}

css3是最新的css 标准. w3c的css3规范仍在开发. 但是, 许多新的css属性已经在现代浏览器使用
IE只有在版本9 及以上支持

js脚本兼容

1、事件对象

任何一个对象只要触发了事件,都传一个参数(event);
event对象
IE:默认参数  window.event
非IE:必须传递一个参数

兼容方法:
IE浏览器下,只要访问全局对象window的event属性即可,忽略该参数,用window.event来读取该event。
obj.onclick = function(e){� e = e || window.event

}

2、事件对象中的属性

IE下,even对象有x,y属性,但是没有pageX,pageY属性;
非IE下,event对象有pageX,pageY属性,但是没有x,y属性

兼容方法:
使用条件注释法:<!--[if IE]>...event.x...<![end if]-->
缺点是在IE浏览器下可能会增加额外的HTTP请求数。
或者:var x = (event.x ? event.x : event.pageX)

3、innerHTML、innerText、textContent

IE支持innerHTML、innerText,不支持textContent属性
其他浏览器三种属性都支持

4、DOM2级事件绑定

js的事件绑定方法中,IE9以下(不包括9)只支持attachEvent,而FF和Chrome只支持addEventListener,所以就必须为这两个方法做兼容处理,原理是先判断attachEvent只否为真(存在),如果为真则用attachEvent()方法,否则的话就用addEventListener()。
同样的,事件移除方法也有对应的支持:
IE9以下(不包括9)只支持detachEvent,而FF和Chrome只支持removeEventListener

把这个兼容写法封装成一个函数

function myAddEvent(obj,ev,fn) {
//obj为要绑定事件的元素,ev为要绑定的事件,fn为绑定事件的函数
    if(obj.attachEvent){
         obj.attachEvent("on" + ev,fn);
     }else {
         obj.addEventListener(ev,fn,false);
     }
}

7、获取页面内所有元素的一个集合
IE:documen.all
非IE:document.getElementsByTagName("*")
documen.all
8、获取对象的可视化区域的宽和高,滚动条距离顶端的距离
var w = document.body.clientWidth || document.documentElement.clientWidth;
var t = document.body.scrollTop || document.documentElement.scrollTop;

兼容查询

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,378评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,356评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,702评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,259评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,263评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,036评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,349评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,979评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,469评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,938评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,059评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,703评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,257评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,262评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,501评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,792评论 2 345

推荐阅读更多精彩内容