无论如何,要在快速点击时阻止Chrome中的元素蓝色突出显示?

Smi*_*ith 100 css google-chrome

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

我尝试使用outline:none但没有效果.那里有解决方案吗?

Iwa*_*aru 175

对于Android上的Chrome,我使用了-webkit-tap-highlight-color CSS属性:

-webkit-tap-highlight-color: transparent;
Run Code Online (Sandbox Code Playgroud)

  • `-webkit-tap-highlight-color:transparent;`似乎也有效. (21认同)
  • 我发现,例如,当您在触摸屏上运行时,Chrome的行为与Android上的行为非常相似。我有一个<div>,只要您单击其中的某个位置,它就会闪烁蓝色。只有当我使用此答案时,它才停止。谢谢! (3认同)
  • 其他 css attys 都不会这样做。如此重要,因为点击突出显示会扭曲点击的任何内容的外观,模糊您的视觉语言。 (2认同)
  • 为了可访问性,值得保留一些指示链接已被单击的指示符。您可以使用具有轻微不透明度的 rgba(根据您的初始链接/按钮背景颜色进行调整): `-webkit-tap-highlight-color:rgba(255, 255, 255, 0.2)` (2认同)

smt*_*mts 128

除了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;
}
Run Code Online (Sandbox Code Playgroud)

只需将class="noSelect"属性添加到要应用此类的元素即可.我强烈建议尝试使用这个CSS解决方案.使用JavaScript没有任何问题,我只相信这可能会更容易,并在代码中清理一点.

对于Android -webkit-tap-highlight-color: transparent;上的chrome是一个额外的规则,您可能需要尝试在Android中获得支持.

  • 无法在Android上使用Chrome.我不得不使用`-webkit-tap-highlight-color:rgba(255,255,255,0);` (29认同)
  • `-webkit-tap-highlight-color:transparent;`是Chrome上的关键部分 (14认同)

小智 51

我正在运行Chrome版本60,之前的CSS答案都没有.

我发现Chrome正在通过这种outline风格添加蓝色突出显示.添加以下CSS为我修复了它:

:focus {
    outline: none !important;
}
Run Code Online (Sandbox Code Playgroud)

  • 你,先生,是一个救生员. (4认同)
  • 这是适用于Android的Chrome(第61版)的工作版 (2认同)

小智 17

但是,有时,即使使用user-selecttouch-callout关闭,cursor: pointer;也可能会产生这种效果,所以,只需设置cursor: default;它就可以了.

  • 这是一个正确的答案,`cursor:pointer;`确实引起了突出显示.但是`-webkit-tap-highlight-color:transparent;`是更通用的解决方案. (5认同)
  • `cursor: default` 在没有其他任何工作时对我有用。 (3认同)
  • 谢谢-没有其他解决方案对我有用。不得不删除光标指针以使蓝色突出显示消失 (2认同)

cor*_*cob 6

要移除手机上的蓝色覆盖,您可以使用以下方法之一:

-webkit-tap-highlight-color: transparent; /* transparent with keyword */
-webkit-tap-highlight-color: rgba(0,0,0,0); /* transparent with rgba */
-webkit-tap-highlight-color: hsla(0,0,0,0); /* transparent with hsla */
-webkit-tap-highlight-color: #00000000; /* transparent with hex with alpha */
-webkit-tap-highlight-color: #0000; /* transparent with short hex with alpha */
Run Code Online (Sandbox Code Playgroud)

但是,与其他属性不同,您不能使用

-webkit-tap-highlight-color: none; /* none keyword */
Run Code Online (Sandbox Code Playgroud)

在 DevTools 中,这将显示为“无效的属性值”或其他内容。


要在聚焦时移除蓝色/黑色/橙色轮廓,请使用:

:focus {
    outline: none; /* no outline - for most browsers */
    box-shadow: none; /* no box shadow - for some browsers or if you are using Bootstrap */
}
Run Code Online (Sandbox Code Playgroud)

我删除 的原因box-shadow是因为 Bootsrap(和一些浏览器)有时会将它添加到焦点元素中,因此您可以使用它来删除它。

但是如果有人使用键盘导航,他们确实会感到非常困惑,因为他们依靠这个大纲来导航。所以你可以替换它

:focus {
    outline: 100px dotted #f0f; /* 100px dotted pink outline */
}
Run Code Online (Sandbox Code Playgroud)

您可以使用或定位移动设备上的点击,因此您可以使用它们来提供帮助。或者它可能会变得混乱。:hover:active


完整代码:

element {
    -webkit-tap-highlight-color: transparent; /* remove tap highlight */
}
element:focus {
    outline: none; /* remove outline */
    box-shadow: none; /* remove box shadow */
}
Run Code Online (Sandbox Code Playgroud)

其他信息:

  • 如果您想自定义,-webkit-tap-highlight-color则应将其设置为半透明颜色,以便点击时下方的元素不会被隐藏
  • 不要从重点元素中删除轮廓,或为它们添加更多样式。
  • -webkit-tap-highlight-color没有得到很好的浏览器支持,也不是标准的。您仍然可以使用它,但要小心!