是否可以在快速单击时防止Chrome中的元素以蓝色突出显示?


123

大多数时候,我并不担心,但是我有一个图像轮播,如果我快速单击下一个和上一个div,它们会在Chrome中突出显示。

我尝试使用outline:none,但没有效果。有什么解决办法吗?


我没有看到在目前的Chrome版本的效果
Billal Begueradj

我知道您的用例是不同的,但是对于其他想要从所有链接中删除它的人,我不建议这样做。我曾尝试在PWA上将其删除,但没有视觉反馈,用户认为该应用程序运行缓慢。
collimarco

Answers:


170

除了Floremin提供链接(该链接使用JavaScript清除文本选择以“清除”选择内容)之外,您还可以使用纯CSS来完成此操作。CSS在这里...

.noSelect {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

只需将class="noSelect"属性添加到要应用此类的元素即可。我强烈建议您尝试一下此CSS解决方案。使用JavaScript没错,我只是相信这样做可能会更容易,并且可以在代码中进行一些整理。

对于android -webkit-tap-highlight-color: transparent;上的chrome是一条附加规则,您可能需要尝试在Android中获得支持。


1
仅对于Chrome,您可能只需要user-selectwebkit-user-select
2014年

这是我要使用的解决方案,因为我在Chrome中仅遇到突出显示问题,并且效果很好。感谢所有参与的人!
史密斯

36
无法使其与Android上的Chrome一起使用。我不得不使用-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
Iwazaru 2015年

25
-webkit-tap-highlight-color: transparent; 是Chrome上的关键部分
FisNaN

对于Android上的Chrome -webkit-tap-highlight-color:透明;-为我工作了谢谢!
CK Munn

213

对于Android上的Chrome,您可以使用-webkit-tap-highlight-color CSS属性

-webkit-tap-highlight-color是非标准的CSS属性,用于设置点击时突出显示在链接上方的突出显示的颜色。高亮显示向用户指示他们的敲击已被成功识别,并指示他们正在敲击哪个元素。

要完全删除突出显示,可以将值设置为transparent

-webkit-tap-highlight-color: transparent;

请注意,这可能会影响可访问性:请参见outlinenone.com


4
我发现,例如当您在触摸屏上运行时,Chrome的行为将与Android上的行为非常相似。我有一个<div>,只要您单击其中的某个位置,它就会闪烁蓝色。只有当我使用此答案时,它才停止。谢谢!
Valorum

2
其他css atty都不会执行此操作。如此重要是因为点击突出显示会扭曲所单击内容的外观,从而模糊您的视觉语言。
Dominic Cerisano

23
-webkit-tap-highlight-color: transparent;似乎也可以。
伯纳德

1
我喜欢这个,对于触摸事件这是必须的!此信息具有“图表外”用途!
BerkerYüceer

1
2020
有用

66

我正在运行Chrome版本60,以前的CSS答案都无效。

我发现Chrome通过该outline样式添加了蓝色突出显示。添加以下CSS为我修复了该问题:

:focus {
    outline: none !important;
}

5
先生,您是救生员。
beckah

2
这是适用于Android上的Chrome(61版)的版本
Stefan

适用于最新版本的Chrome。谢谢!
CrazedCoder

超级,想知道为什么我的信任user-select:none无济于事
Sean T

我尝试了一切,但这确实很吸引人。感谢您保存我的头发!
Avinash Kumar

25

但是,有时,甚至user-selecttouch-callout关闭,cursor: pointer;可能会导致这种效果,所以,只需设置cursor: default;,它会工作。


7
这是一个正确的答案,cursor: pointer;确实引起了人们的关注。但是-webkit-tap-highlight-color: transparent;是更通用的解决方案。
yanot

1
@yanot:阅读警告-webkit-tap-highlight-color标签之前,一个相对通用的解决方案developer.mozilla.org/en-US/docs/Web/CSS/...
哈桑贝格

@HassanBaig我认为很明显,我并不是说通用跨浏览器,但是在这种情况下,即跨不同版本的chrome
yanot

2
谢谢-没有其他解决方案对我有用。必须删除光标指针以使蓝色突出显示消失
RVP

3
cursor: default当没有其他办法起作用时,为我完成了trick俩。
Telarian

-2

尝试在这些元素上为select事件创建处理程序,然后在处理程序中可以清除选择。

看看这个:

使用JavaScript清除文本选择

这是清除选择的示例。您只需要对其进行修改即可仅在所需的特定元素上使用。


所以它不能用CSS修复,是吗?我可以清除点击处理程序中的选定文本吗?编辑-感谢您的示例。糟透了,它必须通过javascript处理。我希望这只是一个CSS问题。
史密斯

另外,这会对可访问性产生影响吗?
史密斯

您可以清除点击处理程序中的文本,但是使用纯CSS来查看@smts答案。
Floremin 2014年

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.