为什么浏览器会存在兼容问题?
- 同一浏览器,版本越老,存在bug越多,相对于版本越新的浏览器,对新属性和标签、新特性支持越少。
- 不同浏览器,核心技术不同,标准不同,实现方式也有差异,最终呈现出来在大众面前的效果也是会有差异。
处理兼容问题的思路:
1. 要不要做?
- 产品的角度(产品的受众、受众的浏览器比例、效果优先还是基本功能优先)。
- 成本的角度 (有无必要做某件事)。
2. 做到什么程度?
3. 如何做?
- 根据兼容需求选择技术框架/库(如jquery 1.x.x)。
- 根据兼容需求选择兼容工具:html5shiv、Respond.js、CSS Reset、normalize.css、Modernizr.js、 postcss。
- 条件注释、CSS Hack、js 能力检测做一些修补。
渐进增强和优雅降级
- 渐进增强(progressive enhancement): 针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验
- 优雅降级(graceful degradation): 一开始就构建完整的功能,然后再针对低版本浏览器进行兼容
转载于:https://my.oschina.net/u/3986435/blog/3040254