大部分时间我并不担心,但我有一个图像轮播,如果我快速点击下一个和上一个div,它们将在Chrome中突出显示。
我尝试使用outline:none但没有效果。那里有解决方案吗?
答案 0 :(得分:148)
对于Android版Chrome,您可以使用-webkit-tap-highlight-color CSS property:
-webkit-tap-highlight-color是一个非标准的CSS属性,用于设置 在链接出现时突出显示的突出显示的颜色 窃听。突出显示向用户指示他们的点击正在进行 成功识别,并指出他们正在点击哪个元素 上。
要完全删除突出显示,您可以将值设置为transparent
:
-webkit-tap-highlight-color: transparent;
答案 1 :(得分:104)
除了使用JavaScript清除文本选择以清除选择的link provided by Floremin之外,您还可以使用纯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上的Chrome
-webkit-tap-highlight-color: transparent;
是您可能需要尝试在Android中获得支持的附加规则。
答案 2 :(得分:40)
我正在运行Chrome版本60,之前的CSS答案都没有。
我发现Chrome正在通过outline
样式添加蓝色突出显示。添加以下CSS为我修复了它:
:focus {
outline: none !important;
}
答案 3 :(得分:11)
但是,有时候,即使关闭user-select
和touch-callout
,cursor: pointer;
也可能会导致此效果,因此,只需设置cursor: default;
即可。} p>
答案 4 :(得分:3)
要删除手机上的蓝色叠加层,您可以使用以下之一:
-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 */
但是,unlike other properties,您不能使用
-webkit-tap-highlight-color: none; /* none keyword */
在DevTools中,这将显示为“无效的属性值”或类似的内容。
要在聚焦时删除蓝色/黑色/橙色轮廓,请使用以下方法:
:focus {
outline: none; /* no outline - for most browsers */
box-shadow: none; /* no box shadow - for some browsers or if you are using Bootstrap */
}
我删除box-shadow
的原因是因为Bootsrap(和某些浏览器)有时会将其添加到关注的元素中,所以您可以使用它来删除它。
但是,如果有人使用键盘导航,他们的确会非常困惑,因为他们依靠此轮廓进行导航。所以您可以代替它
:focus {
outline: 100px dotted #f0f; /* 100px dotted pink outline */
}
您可以使用:hover
或:active
target taps on mobile,因此可以使用它们来提供帮助。否则可能会造成混淆。
完整代码:
element {
-webkit-tap-highlight-color: transparent; /* remove tap highlight */
}
element:focus {
outline: none; /* remove outline */
box-shadow: none; /* remove box shadow */
}
其他信息:
-webkit-tap-highlight-color
,则应将其设置为半透明颜色,以便在点击时下方的元素不会被隐藏-webkit-tap-highlight-color
没有很好的浏览器支持,并且不是标准的。您仍然可以使用它,但要当心!答案 5 :(得分:0)
我在<input type="range" />
上也遇到过类似的问题,并通过
-webkit-tap-highlight-color:透明;
input[type="range"]{
-webkit-tap-highlight-color: transparent;
}
<input type="range" id="volume" name="demo"
min="0" max="11">
<label for="volume">Demo</label>
答案 6 :(得分:-1)
尝试为这些元素创建select事件的处理程序,并在处理程序中清除选择。
看看这个:
Clear Text Selection with JavaScript
这是清除选择的一个例子。您只需将其修改为仅适用于您需要的特定元素。
答案 7 :(得分:-4)
这对我来说效果最好:
Private Sub RichTextBox1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyUp
Dim wordToFind As String = "findword"
Dim replaceWord As String = "replaceword"
Richtextbox2.rtf = RichTextBox1.replace(wordToFind, replaceWord)
End If
End Sub