问题描述:最近开发web程序时,发现前端一些部分在不同浏览器之间显示有差异,一些效果或者直接丢失了。那么浏览器兼容就需要考虑了,而又具体要如何去做呢?
我去查询了一下,在这里记录下来,转载一段知乎的回答:
链接:https://www.zhihu.com/question/19736007/answer/12825938
来源:知乎
著作权归作者所有。
先看一组豆瓣数据,各浏览器的占有率:
ie6 - 30.23%
ie7 - 4.8%
ie8 - 30.6%
ie9 < 1%
chrome - 13.99%
firefox - 7.17%
safari ~ 5%
其他 ~ 8%
我们认为chrome + firefox + safari + ie9是高端浏览器,ie8勉强算准高端吧。这样这部分占有率约57%(如果加上其他webkit内核的浏览器会更高一些) 已经大于ie6 + ie7。
高端和低端浏览器的差距可以用html5test量化一下:
Google Chromium 11.0.690的分数是293,而Microsoft Internet Explorer 6.0的分数17
也许有各种fallback方案可以保证完全兼容性各个浏览器,但依然不能保证低端浏览器的使用体验,顶多是看起来各个浏览器都一样了。因此,现在的设计和开发的策略是浏览器分级支持。优先为高端浏览器设计,同时考虑低端浏览器的退化方案。甚至有些复杂的应用可以拒绝ie6,提示用户使用高端浏览器。豆瓣7月份将会发布一款对ie6说no的产品(国内第一个拒绝支持ie6的产品吧)
因此不要再考虑向后兼容,应该考虑向后退化,更多考虑向前兼容。