其它·via @mubei

很多网页在电脑上看着挺好。 一拿到真手机上,就像个半成品。 点一下按钮,悬停状态卡着退不出来。 手指一按,屏幕莫名其妙闪…

很多网页在电脑上看着挺好。 一拿到真手机上,就像个半成品。

点一下按钮,悬停状态卡着退不出来。 手指一按,屏幕莫名其妙闪过一块灰底。 往下划,却触发了该死的下拉刷新。

这要怎么解? 移动端体验是一组死磕设备的物理约束。 干掉下面这些细节,网页就能像原生应用一样顺滑。

悬停状态卡死? 用 `@media (hover: hover) and (pointer: fine)` 把代码包起来。

手指按压屏幕闪烁灰蓝光? 直接杀掉 `-webkit-tap-highlight-color`。

布局高度总是差一点? 放弃 `100vh`。应用框架用 `100dvh`,首屏大图用 `100svh`。

点进输入框页面自动放大? 把输入框字体大小限制在最低 16px。

点击总觉得卡顿? 在 `pointer-down` 阶段就给反馈,配合 `touch-action: manipulation`。

下拉刷新劫持了页面滚动? 给 `html, body` 加上 `overscroll-behavior: none`。

内容被刘海屏截断? `viewport-fit=cover` 配合 `env(safe-area-inset-*)` 搞定。

长按按钮变成了选中文字? 加一行 `user-select: none`。

横向轮播图上下乱串? 在手势区域设定 `touch-action: pan-y`。

状态栏颜色和页面脱节? 按配色方案配置 `theme-color`。

最后一条。 在电脑浏览器的模拟器里看着一切完美? 别信。 老老实实去真机上测。

导出 / EXPORT