浏览器兼容大致分为:样式兼容(css)\交互兼容(js)\浏览器hack
一、样式兼容(css):
1.通过重置样式表来实现不同浏览器的margin和padding的差异
例如—
* { margin: 0; padding: 0; } // 不推荐使用,略low
2.不同浏览器内核上的兼容,通过添加前置样式来实现
例如—
IE -ms-火狐 -moz-欧朋 -o-谷歌 -webkit-
3.透明度opacit,不兼容IE9以下浏览器,可以使用滤镜属性,来实现
例如—
opacity: 0.5;filter: alpha(opacity = 50); //IE6-IE8我们习惯使用filter滤镜属性来进行实现filter: progid:DXImageTransform.Microsoft.Alpha(style = 0, opacity = 50); //IE4-IE9都支持滤镜写法progid:DXImageTransform.Microsoft.Alpha(Opacity=xx)
二、交互的兼容(js)
1.事件兼容问题,封装一个适配器方法
例如—
var helper = {}//绑定事件helper.on = function(target, type, handler) {if(target.addEventListener) {target.addEventListener(type, handler, false);} else {target.attachEvent("on" + type,function(event) {return handler.call(target, event);}, false);}};//取消事件监听helper.remove = function(target, type, handler) {if(target.removeEventListener) {target.removeEventListener(type, handler);} else {target.detachEvent("on" + type,function(event) {return handler.call(target, event);}, true);}};
2.new Data()构造函数使用 “-“ 连接在别的浏览器不兼容,需要改成”/“
例如—
var str = “2019-03-03”;var time = new Date(Date.parse(str.replace(/-/g,"/")));
3.获取窗口高度,兼容其他浏览器
例如—
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
三、浏览器hack
1.快速判断 IE 浏览器版本
<!--[if IE 8]> ie8 <![endif]--><!--[if IE 9]> 骚气的 ie9 浏览器 <![endif]-->
2.判断是否是 Safari 浏览器
/* Safari */var isSafari = /a/.__proto__=='//';
3.判断是否是 Chrome 浏览器
/* Chrome */var isChrome = Boolean(window.chrome);
