1

我想禁止仅使用 CSS 进行元素选择(使用鼠标或 CRTL+A 进行选择)。我尝试了以下方法:

element {
    -moz-user-select: none;
    -ms-user-select: none;
    -webkit-user-select: none;
    user-select: none;
}

element::-moz-selection {
    background: transparent;
}

它在 Firefox 20 中无法正常工作。但它在 webkit 中工作。即使使用上述 CSS 规则,我也可以使用 CTRL+A 选择图像和画布。

有没有办法只使用 CSS(不使用 JS)来禁止选择(或至少不显示)。

我不想阻止用户复制文本,我只想隐藏对某些元素的选择。

我尝试了这个答案中的代码,但它似乎在 Firefox 20 中不起作用。

谢谢你的帮助。

4

1 回答 1

1

我已经在 FF20 中使用以下小提琴进行了尝试:http: //jsfiddle.net/ADGsA/

p.noselect { -moz-user-select:none; }
p.recolor::-moz-selection { color: yellow;  background: red; }

鼠标的所有行为都符合预期,但我确实可以使用 ctrl-A 选择文本。我很确定这是 Gecko 中的一个错误,但从MDN 参考页面来看,这也很可能不是他们要解决的错误:

注意:用户选择当前不是任何 W3C CSS 规范的一部分。因此,浏览器实现之间存在细微差别。请务必跨浏览器测试您的应用程序。

非标准化,所以不可预测。拿走你得到的东西,我猜你会很幸运,你可能会考虑在 Bugzilla 上提出一个错误,因为我真的认为他们不是故意的,因为提到的页面还说:

控制选择的外观(仅)。

这表明 ctrl-A 也不应该选择它。


编辑:

自 2008 年 11 月以来,这一直是一个已知问题。不要屏住呼吸寻求修复,投票并祈祷。

于 2013-04-25T16:58:22.923 回答