做网站怎么兼容所有浏览器?这问题问得,我听着都头疼。咱们干这行的,最怕客户甩过来一句:“哎,我那个在IE上咋打不开呢?”那一刻,我心里一万只草泥马奔腾而过。但没办法,谁让咱们是乙方呢。今天不整那些虚头巴脑的理论,我就掏心窝子跟大伙聊聊,这坑到底咋填。
首先,咱得承认个事实:现在的浏览器环境,比那老北京的胡同还复杂。以前做网站,为了兼容IE6、IE7,那是真·头发掉了一把又一把。现在呢?Chrome、Edge、Safari、Firefox,再加上那些国产双核浏览器的“魔改”内核,简直就是神仙打架。我有个老客户,做企业官网的,非要在IE11上实现和Chrome一模一样的动画效果,结果呢?代码写得像天书,最后为了那1%的用户,差点把项目组逼疯。
所以,做网站怎么兼容所有浏览器?我的建议是:别做梦了,不可能完美兼容所有。你要做的,是“合理兼容”。
第一步,认清现实。现在还有多少人用IE?据我观察,除了某些老旧的政府内网或银行系统,普通用户早就抛弃IE了。如果你的目标用户是年轻人、白领,那你根本不用管IE。但如果你的客户是传统制造业、或者面向中老年群体,那还得稍微照顾一下。这时候,你可以用Babel或者Polyfill这些工具,给老旧浏览器打个“补丁”,让它们能跑起来,虽然丑点,慢点,但至少能看。
第二步,测试别偷懒。很多同行喜欢只在Chrome上看一眼,就敢交付。这是大忌!我每次上线前,必做三件事:一用Chrome调试,二用Safari看移动端效果,三用Firefox测一下CSS Grid布局有没有崩。记住,CSS Grid在Safari上的表现有时候挺那啥的,得加前缀。还有,别光看电脑,手机浏览器才是重灾区。安卓的UC、夸克,苹果的Safari,各有各的脾气。我见过一个案例,一个按钮在iPhone上好好的,一到安卓低端机上就变形,最后发现是flex布局的bug。
第三步,代码要“洁癖”。别写那些花里胡哨的CSS3新特性,除非你确定用户设备支持。比如,圆角、阴影、渐变,这些虽然好看,但在老浏览器里可能直接显示为方块。这时候,用渐进增强(Progressive Enhancement)的思路,先保证基本内容能看,再慢慢加特效。别为了炫技,把用户体验搞砸了。
再说个扎心的事儿。有个同行,为了兼容所有浏览器,写了一堆hack代码,最后网站加载速度慢了3秒,用户全跑了。你说,这图啥呢?兼容性不是目的,用户体验才是。如果为了兼容一个没人用的浏览器,牺牲了主流用户的体验,那就是本末倒置。
最后,给大伙提个醒。做网站怎么兼容所有浏览器?答案不是“全部兼容”,而是“主流兼容,边缘妥协”。把80%的精力放在Chrome、Safari、Firefox上,剩下的20%,给那些特殊需求留个后门。别追求完美,追求“够用”和“稳定”。
我常说,建站就像做饭,不用非得用米其林级别的食材,只要味道对路,客人吃得开心,你就赢了。别被那些所谓的“完美兼容”忽悠了,那都是骗小白的。咱们得务实,得接地气,得知道用户到底在乎啥。
总之,别纠结了,该用Polyfill就用,该放弃就放弃。你的时间比那些老旧浏览器的bug值钱多了。