浏览器兼容性问题

2022-01-06大约8分钟

图片

创建网页的目的,是能够在浏览器中打开,而浏览器种类众多,比如IE,Chrome,Safari ,Edge及国内加壳的各种浏览器,不光要考虑台式机、笔记本等传统电脑上的Windows、MacOS等,也要支持安卓、苹果等移动操作系统,能让同一份代码在不同的浏览器、设备上按照希望的方式去显示正确的内容,是一个比较麻烦的事情。

多年前,由于微软的不思进取,IE浏览器的多个版本6、7、8、9、10等多个版本的功能也不一致,为了能让代码在IE的不同版本上也正常显示,也需要开发者花费大量的精力去解决这些兼容性上的问题。因此,从某种程度上说,HTML/CSS开发容易,最难、最费事的是处理各种兼容性问题!解决这些兼容性问题很多时候并不会给开发者带来成就感,更多的时候都是份苦差事,也没意思,所以一般想编程的人都不太愿意做Web的前端开发。不过随着Firefox、Chrome等后来者浏览器的竞争,以及旧版本IE的停止支持,大多数用户都在用Edge、Chrome等浏览器,而这些浏览器都尽量遵循同一个设计标准,甚至都在用同样的内核。所以,尽管仍有很多的差异,但大多数情况下,兼容性的问题已经不像是之前那么棘手了,只要按照编码规范来,绝大多数代码都是没有问题的,只需要偶尔处理一下兼容性问题就行。

对于初学者来说,除了HTML5的一些新的标签,是需要考虑浏览器的兼容性,大多数是不需要考虑的,而CSS尽管存在不同浏览器的不同写法,在写的时候,也只需要考虑最标准的写法,兼容性的问题可以交给一些auto prefixer的工具来自动解决。比如,CSS转换前后的效果:

图片

总结一下

  • 对于简单的需求,先不要考虑浏览器的兼容性,等代码实现完成之后再解决;
  • 对于复杂的需求,如音、视频的播放,则尽量依赖第三方封装好一些JavaScript库来解决,尽量不要自己重复造轮子。