东莞负责网站的技术同学们,你们有没有遇到过这种情况:在自己电脑上看好好的网站,到了老板的手机上就乱了;在Chrome里正常,到了IE里就崩了。这就是让人头疼的兼容性问题。我在东莞南城也见过类似的情况
就像厚街那边遇到的情况一样,为什么会有兼容性问题
根本原因是不同的浏览器和设备对网页代码的解析方式不完全一样。就像同一句话在不同方言区可能有不同的理解一样,同一行CSS代码在Chrome和Safari里的渲染效果也可能有细微差别。
最容易出问题的几个场景:CSS3新特性(如flexbox、grid)在旧浏览器不支持;移动端触摸事件和鼠标事件的处理差异;不同屏幕尺寸下的布局错乱;字体在各平台的渲染不一致。
怎么预防和解决
第一,用标准化的技术栈。尽量使用广泛支持的HTML5和CSS3特性,避免使用过于前沿或者实验性的功能。可以查Can I Use网站(caniuse.com)确认你想用的特性在目标浏览器的支持情况。
第二,做响应式设计。不要为特定屏幕尺寸写死布局,而是用媒体查询让页面自动适应不同宽度。移动优先(Mobile First)是目前业界公认的最佳实践——先做好移动端布局再逐步增强到桌面端。
第三,使用CSS重置/标准化。不同浏览器有不同的默认样式,用normalize.css或者reset.css把这些默认差异抹平,然后再写你自己的样式。这样能避免很多莫名其妙的兼容问题。
测试不能偷懒
南城有家公司的网站就是因为只在Chrome上测试过就上线了,结果他们的目标客户群体(很多制造业采购员)还在用IE11,打开网站一片混乱。当月的询盘量直接跌了40%。
建议的最小测试矩阵:Chrome最新版、Firefox最新版、Safari最新版(如果有Mac)、iOS Safari、Android Chrome。如果客户群有可能用IE,那还得测IE11。
实在没有那么多设备怎么办?用BrowserStack或者LambdaTest这类在线跨浏览器测试平台,可以远程访问各种浏览器和设备的真实环境。免费额度够基本测试用。
总结
总结: 兼容性问题是可以预防但很难一次性根治的事情。东莞的技术同行们,把它纳入常规的开发和测试流程吧,别等客户投诉了才发现问题。