2

以下是一些非常简单的示例 HTML 用于此问题:

<!DOCTYPE html>
<html>
<head>
    <title>test</title>
</head>
<body>
<p>stuff</p>
<p>more stuff</p>
<label>Test</label>
<select>
    <option>Option 1 Here</option>
    <option>Option 2 Here</option>
    <option>Option 3 Here</option>
    <option>Option 4 Here</option>
    <option>Option 5 Here</option>
    <option>Option 6 Here</option>
    <option>Option 7 Here</option>
</select>   
<p>other stuff</p>
</body>
</html>

在 Windows 7 上的 Firefox 12.0 上,当您使用围绕 的光标突出显示文本时<select>,选项也会突出显示。

在此处输入图像描述

这种行为在我测试过的其他现代浏览器中不会发生,例如 IE9 和 Chrome。

基本上,我想允许突出显示周围的文本,但我不想像 Firefox 那样允许突出显示选择中的选项。

我发现这个答案涉及禁用突出显示。我一开始尝试如下:

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

这成功地禁用了突出显示,<select>但是,没有其他任何不受欢迎的突出显示。

我试图将 CSS 规则的范围缩小到:

    select, select option {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;  
}

但是,这不起作用,如以下屏幕截图所示。尽管萤火虫声明该规则已应用于<select>元素,但仍允许突出显示。

通常这没什么大不了的,但这是来自大型应用程序的一个小花絮,它依赖于许多滚动<div>元素,这些元素在滚动时会无意中突出显示选择。不过,我不想要一个涉及用户根本无法选择任何文本的解决方案,因为这不是他们习惯的体验。

在此处输入图像描述

4

1 回答 1

2

将此添加到您的CSS:

option::-moz-selection { background: transparent; }
于 2012-05-16T14:55:43.780 回答