You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hybrid App开发:如何禁用<a>元素长按后的灰色遮罩?

解决iOS Safari长按a标签按钮出现灰色遮罩的问题

这个问题其实是iOS Safari给可点击链接(<a>标签)默认加上的长按高亮/选中效果,哪怕你的href="#"没有实际跳转,浏览器还是会把它识别为可交互的链接元素,触发这个灰色遮罩。这里有几个简单有效的解决方法:

方法一:直接禁用目标元素的高亮效果

给你的<a>标签添加-webkit-tap-highlight-color CSS属性,设置为透明就能完全去掉这个灰色遮罩:

/* 针对单个按钮的a标签,建议用类来精准控制 */
a.no-tap-highlight {
  -webkit-tap-highlight-color: transparent;
}

如果想全局禁用所有<a>标签的这个效果,也可以直接写:

a {
  -webkit-tap-highlight-color: transparent;
}

对应的HTML可以改成这样(给a标签加类):

<a href="#" class="no-tap-highlight">
  <div style="height: 50px; width: 50px; background-color: #00ff00; margin: 32px"></div>
</a>

方法二:替换标签(如果不需要跳转功能)

如果这些按钮本来就不需要<a>标签的跳转功能(只是用它来绑定点击事件),可以把<a>换成<div>,然后给div添加点击事件,这样从根源上避免浏览器把它识别为链接,自然就不会有长按遮罩了:

<div style="height: 50px; width: 50px; background-color: #00ff00; margin: 32px; cursor: pointer;"></div>

补充说明

-webkit-tap-highlight-color是WebKit内核浏览器(比如iOS Safari)的私有属性,专门用来控制点击/长按元素时的高亮颜色,设置为transparent就会完全隐藏这个效果,不会影响其他交互逻辑。

内容的提问来源于stack exchange,提问作者Desmond

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:37:42