桌面浏览器右下角有「预约回呼」按钮,手机打开同一个页面什么都没有,代码里那段 display: block 像是没执行。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

.callback-btn { display: none; }
@media (hover: none), (pointer: coarse) {
  .callback-btn { display: block; }
}

按钮的显示规则写在 hover 媒体查询里,触屏设备匹配到 hover: none,整段规则不生效,元素保持初始的 display: none。用 UA 判断的老写法在平板和二合一设备上同样不准。这一点先确认清楚,后面就不用反复试。

「回呼按钮移动端隐藏」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

具体做法是,把显示规则移出 hover 媒体查询,触屏单独用 pointer: coarse 覆盖;按钮本身改成 tel 链接,点一下直接拨号,比填表单少一步;真机各测一遍,别只看开发者工具的设备模式。

改完照着核一遍,手机上右下角出现回呼按钮,点了直接调起拨号盘。

作者 9823189