减少浏览器兼容性问题

做为一个前端工程师,不少时间都在处理浏览器兼容性问题。本文对如何减少浏览器兼容性问题的方法做了些总结。

确定运行环境

在开发前,我们要确定页面的运行环境:要兼容哪些浏览器,以及哪些屏幕分辨率。

如果我们不了解我们的运行环境,兼容性也无从谈起。也只有在确定来运行环境后,我们才可以选择合适的方式。我们可以借助 HTML5 与 CSS3 技术应用评估来选择用哪些技术。

查询特性的兼容性

在使用某个特性前,我们可以使用 Can I Use 来查询某特性在各个浏览器上的兼容性情况。也可以在代码中用 Modernizr 进行特性探测。

下面是一些查询兼容性的网站

如果实在想用某个特性,但某个想兼容的浏览器不支持,可以找找有没库来做支持的

了解哪些写法会产生兼容性问题

有时候一些兼容性问题的产生并不是因为我们的写法问题,而是浏览器自身的 bug(如 IE 6 的双边距问题),或者浏览器对标准的支持不一致。所以我们要了解哪些写法会产生兼容性问题,然后避免那样写。

推荐认真研究浏览器兼容性-根本原因内容列表

充分的测试

推荐使用 iTest。它是阿里出的测试工具。支持主流浏览器的截图,死链接检测等。

现在一些多浏览器自动化测试的工具,服务(如 Sauce LABS)也很多,暂时还没怎么研究,以后研究后可以给大家分享~

一些技巧

  • 让用 IE 访问页面时,尽可能用最新的 IE 渲染引擎。通过加在 HTML 中加标签 <meta http-equiv="X-UA-Compatible" content="IE=edge">
  • 让双核浏览器(如 360,搜狗等国产浏览器)访问本网页时,用 webkit 内核来渲染。通过加在 HTML 中加标签 <meta name="renderer" content="webkit">。(注:目前只有 360 浏览器支持)
  • 用 HTML5 的 DocType:<!DOCTYPE html PUBLIC>。避免使用有问题的 DocType 而导致的浏览器用怪癖模式来渲染页面。
  • 一些 CSS 属性记得要加浏览器前缀
  • 有时页面的元素改变后,应该被重绘,但浏览器没有重绘,可以用让元素隐藏,然后再显示的方式来让浏览器重绘

拓展阅读

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏知晓程序

开发 | 小程序不够「高级」?那是因为你没用上这 3 个特效!

最近在负责一个微信小程序的前端以及前后端接口的对接的项目,整体上所有页面的布局我都已经搭建完成。

1253
来自专栏编程微刊

小程序点击轮播图跳转到tab导航界面

一切准备好之后,在wxml文件里面,我们要使用 bindtap在图片上绑定一个事件,在js里面写事件函数的具体操作。

2762
来自专栏Golang语言社区

nwui —— 又一个go语言图形界面解决方案

Github: https://github.com/go-nwui/nwui 最近开的一个大坑,具体实现就是自动生成htm+css+js然后调用nw.js来显...

2803
来自专栏抠抠空间

Font Awesome矢量图标框架

一、font awesome简介 目前图标总数共有519个; 不依赖Javascript 矢量图形,无限缩放 免费,可用于商业 CSS...

3036
来自专栏腾讯社交用户体验设计

移动H5前端性能优化指南 - 腾讯ISUX

4501
来自专栏河湾欢儿的专栏

03-保存

存储所需内容 ctrl+c ctrl+n ctrl+v 或者直接拖动文件至新文件

882
来自专栏吴裕超

点击穿透原理及解决

一、事件触发顺序 PC网页上的大部分操作都是用鼠标的,即响应的是鼠标事件,包括mousedown、mouseup、mousemove和click事件。一次点击行...

6546
来自专栏pangguoming

一看就懂的ReactJs入门教程(精华版)

现在最热门的前端框架有AngularJS、React、Bootstrap等。自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件...

4126
来自专栏用户2442861的专栏

chrome使用技巧(看了定不让你失望,不错)

之前有看过刘哇勇写的Chrome 控制台不完全指南,让我觉得瞬间对chrome的了解实在太浅了。对此特意了解了一番(也就是在他的博文上进行了一些总结和了解一些其...

1411
来自专栏守候书阁

vue组件开发练习--焦点图切换

vue用了有一段时间了,开发的后台管理系统也趋于完善,现在时间比较算是有点空闲吧!这个空闲时间我在研究vue的另外的一些玩法,比如组件,插件等。今天,我就分享一...

2241

扫码关注云+社区

领取腾讯云代金券