浏览器兼容性的情况有哪些,怎么解决
Admin 2022-05-19 群英技术资讯 633 次浏览
浏览器的兼容性无非还是样式兼容性(css),交互兼容性(javascript),浏览器 hack 三个方面。
样式兼容性(css)方面
(1) 因为历史原因,不同的浏览器样式存在差异,可以通过 Normalize.css 抹平差异,也可以定制自己的 reset.css,例如通过通配符选择器,全局重置样式。
* { margin: 0; padding: 0; }
(2)在CSS3还没有成为真正的标准时,浏览器厂商就开始支持这些属性的使用了。CSS3样式语法还存在波动时,浏览器厂商提供了针对浏览器的前缀,直到现在还是有部分的属性需要加上浏览器前缀。在开发过程中我们一般通过IDE开发插件、css 预处理器以及前端自动化构建工程帮我们处理。
浏览器内核与前缀的对应关系如下
主要代表的浏览器 | 内核 | 前缀 |
---|---|---|
IE浏览器 | Trident | -ms |
Firefox | Gecko | -moz |
Opera | Presto | -o |
Chrome和Safari | Webkit | -webkit |
交互兼容性(javascript)
(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 Date()构造函数使用,‘2019-12-09’是无法被各个浏览器中,使用new Date(str)来正确生成日期对象的。 正确的用法是’2019/12/09’.
(3)获取 scrollTop 通过 document.documentElement.scrollTop 兼容非chrome浏览器
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);
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章带大家一起深入了解一下CSS3中的新特性::target-text 选择器,聊聊给选择器的作用和使用方法,希望对大家有所帮助!
用于定义和初始化一个或者多个css计数器。设置计数器的名称和初始值。计数器的初始值不是计数器显示时的第一个数字,如果希望计数器从1开始显示,则需要设置coutter-reset中的初始值设置为0。
div+css布局实现2端对齐是我们网页排版中经常会使用到的,这篇文章主要介绍了css两端对齐之div+css布局实现2端对齐的4种方法总结的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
本篇文章将介绍一种巧用 background 配合 backdrop- filter 来构建有趣的透视背景效果的方式,希望对大家有所帮助!
写法:“border-radius:左上圆角值 右上圆角值 右下圆角值 左下圆角值;”;“border-radius”属性用于设置元素圆角的样式,属性的值可以分别设置元素四个角的圆角值,只需要将不想显示圆角的圆角属性值设置为“0”即可。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008