使用Cursor:Pointer触摸/按下对象时禁用蓝色突出显示


81

每当在Chrome中触摸应用了cursor:pointer属性的Div时,就会出现一个蓝色突出显示。我们如何摆脱它?

我尝试了以下方法:

-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

但是它们不会影响按光标时的蓝色突出显示。

Answers:



85

据我所知,Vlad K的答案可能会在某些android设备中引起问题。更好的解决方案:

-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-tap-highlight-color: transparent;


请说明“以上答案”的替代答案
Nima Derakhshanjan 2015年

1
您为什么使用它rgba(0,0,0,0)代替rgba(255,255,255,0)
Gaurav Aggarwal,2016年

1
@GauravAggarwal alpha空间是有意义的,所以rgba(0,0,0,0)和rgba(255,255,255,0)之间没有区别。
Oboo Cheng

4
如果无论如何都要用透明来覆盖它,为什么还要有一个rgba声明呢?是否有WebKit版本在某种程度上不支持此属性的transparent关键字?
BoltClock

4
@BoltClock。我真的在MDN文档中找不到'transparent'关键字,所以我认为它不是标准的。在回答这个问题之前,我已经读过这篇文章,**克里斯蒂安·库克(Christian Cook **)的评论建议添加此内容,因为他来了我发现这是某些特定设备的错误。
Oboo Cheng

9

只需将其添加到样式表中,然后将class="no_highlights"属性添加到要应用此类的元素即可。

no_highlights{
  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

或者您可以通过删除类名并执行此操作来全局地对所有元素执行此操作。

button,
textarea,
input,
select,
a{
 -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
 -webkit-tap-highlight-color: transparent;
 -webkit-user-select: none;
 -khtml-user-select: none;
 -moz-user-select: none;
 -ms-user-select: none;
  user-select: none;

}

谢谢:)但无论如何。有蓝色边框作为辅助功能。它看起来很糟,但是,它可以帮助最需要它的人。


0

根据文档,您可以简单地执行以下操作:

-webkit-tap-highlight-color: transparent; /* for removing the highlight */

它适用于Android上的Chrome 68和Windows上的Chrome 80。


为什么要投票?关于接受的答案的评论于2020年5月20日发表。我的答案早于2020年4月5日给出。他们说的是完全相同的一件事,但这是不赞成的,而评论是赞成的。是什么赋予了?
埃里克·穆塔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.