关于浏览器兼容性的问题?

codingfly
  • 532

目前市面上浏览器版本五花八门,也有各种各样的兼容性问题。那么统一更新到最新浏览器(假设)如chrome,真的可以解决兼容性问题吗?我想有很大部分原因还是因为操作系统版本的原因吧?毕竟XP还有很大的市场。

回复
阅读 3.2k
3 个回答
SevenOutman
  • 3.2k

统一更新到最新的 Chrome 并不能”解决兼容性问题“。因为所谓兼容性问题并不是指“别人都跟 Chrome 不一样”,而是有一个统一的规范,但各个浏览器实现不同,Chrome 也是其中之一,并且 Chrome 也并没有实现全部最新的规范。

要在前端开发中尽量解决兼容问题,可以使用一些成熟的工具,比如用于处理 js 的 babel(babel-preset-env) 和用于处理 css 的 postcss(autoprefixer)。它们的最新版本已经支持只需指定想要兼容的浏览器版本,就可以自动将你的代码为这些浏览器做兼容。建议你了解一下。

如果你真的想要用户们“统一更新到最新的 Chrome",你可以了解下 Eletron,用它来开发的前端项目都内置了最新版本的 Chrome,因此开发中可以完全针对 Chrome 环境来开发。

希望对你有帮助。

如果是大一统,无论是用 Webkit 内核还是 Trident 内核还是什么内核,都不存在兼容问题了。只有不同才需要兼容,大家都统一标准,哪还需要什么兼容。

目前浏览器兼容问题,不同系统有影响,但影响不是怎么大。比如说 HTTPS 证书兼容性问题,IE浏览器受 Winows 系统版本影响,但 Firefox 和 Chrome 就不受影响。

其实现在市场上的浏览器五花八门影响并不大,因为国产浏览器几乎都没有自己的内核,都是用 Chromium 项目的内核(极速模式)和 IE 内核(IE模式),而且还允许通过 meta 标签令其默认使用 Chromium 内核。

基本上只要兼容了 Chrome 浏览器,就兼容了国内几乎所有主要的浏览器。当然了,这里并不是指跟 Chrome 同步更新,各国产浏览器内核更新时间不一样,有的比较慢,但是只要不是追求最新的特性,基本上可以说是同步。

强制Chromium内核,作用于360浏览器、QQ浏览器等国产双核浏览器:
<meta name="renderer" content="webkit"/>

强制Chromium内核,作用于其他双核浏览器:
<meta name="force-rendering" content="webkit"/>

如果有安装 Google Chrome Frame 插件则强制为Chromium内核,否则强制本机支持的最高版本IE内核,作用于IE浏览器:
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1"/>

参考资料:
百度经验-通过meta代码强制浏览器使用WebKit内核
360浏览器-浏览器内核控制标签meta说明
QQ浏览器-meta元素检测 识别内核 规则介绍

也要看你的应用面对的用户,国内的情况比较复杂,面向全国用户(老机器、老人)的应用考虑就要全面一些,有些应用面对专业人员(后台管理、服务器管理)

宣传栏