8

我目前正在使用:

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

转到http://jsfiddle.net/KyF5x/并单击列表下方,看到这突出显示了文本...无法取消突出显示。重新加载页面,现在尝试 ctrl+a,看看这也会突出显示文本。

在 Chrome、Safari 或 IE 10 中不会出现上述情况。

免责声明:我使用的是 Firefox 18

4

2 回答 2

8

作为临时答案,解决方法是将 CSS 应用于单个“不可选择”元素。但是我很想看到有人提出一个文档范围的修复。

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

见:http: //jsfiddle.net/KyF5x/1/

在 Web 应用程序领域,而不是典型的网站中,具有文档范围内不可选择的文本的用例更为明显。

于 2013-01-13T20:28:22.143 回答
2

作为对 Jack 回答的补充——即使在 2018 年,firefox 也不支持 user-select,但确实支持 moz-user-select。我选择了已接受答案中小提琴的精简版本:

/* stop the user selecting page structure with the mouse */
html, body, div, a, i, button, select, option, optgroup, hr, br {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  cursor: default;
}

这是针对我们不使用任何其他元素的 Web 应用程序,所有页面结构都是 div,甚至是标题等,并且我们不想禁止在输入或文本区域中进行选择。

这是我们整个网络 500k 行代码应用程序中唯一必须使用 -moz- 的地方!

于 2018-03-05T06:13:37.637 回答