问题 是否有Opera 10.62和IE9的用户选择?


我一直试图申请 user-select Opera 10.62和IE9都没有成功。我不能/不会用JavaScript绑定事件 preventDefault(),因为有太多的地方无法选择,我仍然需要在几个地方保留选择。实际上,我希望整个文档的默认行为是不可选择的,至于我在样式表中设置了以下内容:

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

Firefox 4,Chrome 7和Safari 5的一切都运行良好。只有IE9和Opera 10.62无法正常工作。有任何想法吗?

PS:我的目标是现代浏览器。


7967
2017-10-10 14:58


起源

看到: stackoverflow.com/questions/826782/... - mahalie


答案:


你尝试过使用过吗? ::selection {color:currentColor;background:transparent}
对于Firefox,您可以使用 ::-moz-selection

https://developer.mozilla.org/En/CSS/::selection
http://msdn.microsoft.com/en-us/library/ff974109(v=VS.85).aspx
http://reference.sitepoint.com/css/pseudoelement-selection


//更新//
还有 不可选择 属性。


7
2017-10-10 20:51



是的,但这不是很好,因为它只是隐藏了选择。您仍然可以拖动选择并复制它。 - Tower
检查我的更新 - 并阅读 developer.mozilla.org/en/CSS/-moz-user-select “控制选择的外观(仅)。这对实际选择操作没有任何影响。” - Knu
-user-select属性和unselectable的组合为我跨浏览器提供了一种享受。 - ajcw
不能 color: currentColor 是 color: inherit? - acme
@acme你想要元素的当前颜色(不是他的一个祖先)。 - Knu


你可以使用组合 -webkit-user-select: none;-moz-user-select: none; 和具体的财产 unselectable="on",正如我在这里描述的:

如何在HTML页面上使文本无法选择


4
2018-03-11 15:47



不会在IE 9和8中工作,只是属性 - dude


user-select不是标准的CSS3属性,这就是没有用户选择或-o-user-select或-ms-user-select的原因。它曾经是旧的用户界面规范,但它被Basic UI规范所取代。它可能永远不会被任何一个浏览器实现,除非它被添加回规范。

用户选择是行为而不是样式,因此最好使用JavaScript。正如Knu上面提到的,你可以使用不可选择的。


2
2018-01-12 19:43



但可怕的是,孩子们不会继承 unselectable。因此,我需要手动将其应用于几乎所有内容。我有一个带有文本的应用程序,默认情况下我希望一切都不可选。只有当我特别想要选择时,我才会定义它们。这种方法无法实现 unselectable。此外,如果您开始对该元素进行选择,该属性也可以使用。 Ctrl + A等可以使用 unselectable。 - Tower
实际上Opera确实有 -o-user-select。不知道哪个版本,但我认为10.6有它。 - Tim Down
@Tim Down:我很确定Opera不支持-o-user-select。它没有在我们的规范中列出 opera.com/docs/specs/presto29/css/o-vendor 并且它也没有出现在Opera Dragonfly中。 - David Storey
@dstorey:快速测试会建议你说得对: jsfiddle.net/MguY2。我刚刚测试了这个,并认为它得到了支持,但似乎我错了。 - Tim Down
-ms-user-select存在于IE10中。不是9。 - McTrafik


使用jquery:

$('.element').mousedown( function(e) {
    e.preventDefault();
});

但是你可能不得不将它添加到元素和它的容器中。


0
2017-07-04 22:34





-ms-user-select:none;

似乎现在工作正常(IE 10/11)


0
2017-12-26 20:20



哇!我认为IE11应该支持官方标准,而不需要浏览器特定的黑客攻击!当他们引入对此的支持时,为什么不直接使用没有浏览器前缀的标准?!!! (是的 - 我在IE 11中测试过;它只能运行 同 该 -ms- 字首) - awe