我他妈真服了!刚泡了杯浓茶准备熬夜改BUG,随手用手机看了一眼自己那个号称“精心打造”的企业站,差点一口老血喷在4K屏幕上——导航栏堆成一坨屎,图片把整个屏幕都撑爆了,那个精心设计的CTA按钮呢?哦,它躲到了屏幕外边需要用户像考古一样横向挖掘才能找到,这用户体验真是绝了,搜索引擎不锤你锤谁啊?我当初怎么就偷了这个懒!
真的,兄弟,听我一句劝。什么Flexbox、Grid、媒体查询你先放放,第一步,就在你HTML的<head>里,给我把viewport这个meta标签像供祖宗一样供起来先写上:<meta name="viewport" content="width=device-width, initial-scale=1.0">。没这玩意儿,你后面所有花里胡哨的CSS都等于在沙滩上盖楼,一个浪(不同手机分辨率的浪)过来就全垮了。别问我怎么知道的,我第一个站就是因为这个,移动端跳出率高达90%,谷歌爸爸直接判定我页面体验垃圾,排名?那是什么东西?
然后,千万别再用px了!求你了!那是万恶之源!你知道我当初为了调一个按钮在所有iPhone型号上看起来一样大,写了多少@media查询吗?我甚至做了一个对照表,后来发现我真是个傻X。用REM,用EM,用VW/VH这种相对单位,让元素自己去适应。你只需要在根元素(html)上设定一个基准字体大小,比如62.5%(这样1rem≈10px,好算),然后整个世界都清净了。我后来重构时把所有px换成rem,感觉就像给网站做了个全身正骨,那叫一个通畅。
还有,别死磕像素级还原设计稿。设计师给你在1920px宽度的屏幕上画了个1200px宽的容器,很美。但你直接width: 1200px写到手机端试试?直接给你来个横向滚动条,用户想关闭你的网站的心情比你想下班的心情还迫切。用max-width: 100%锁死图片和媒体,用百分比或者max-width来定义容器。流式布局,懂吗?像水一样,容器多大,它就变多宽。
最后,测试,往死里测。别光用Chrome开发者工具拖那个小三角,那玩意不准。真机,一定要上真机。我后来学乖了,办公室常备一台古董iPhone6和一台最新的安卓千元机,每次改完代码就在这两台祖宗和我的主力机上各点一遍。你永远不知道某个国产安卓机的WebKit内核会给你带来什么“惊喜”,真的,我上次就遇到了一个flex布局在某个机型上完全崩坏的灵异事件,盯着它看了半小时,最后还是在这个社区翻了三年前的帖子才找到解法。
自适应不是选修课,是生死线。现在移动流量占比都超过80%了,你做不好,就等于直接把用户和流量送给你的竞争对手。别像我一样,等看到统计后台那条代表移动访问时长的曲线短得可怜,才半夜抽着烟后悔。从那个该死的viewport标签开始,一步一脚印,稳。
