对于任务,产品所有者希望禁用通过Ctrl-A
突出显示的大多数HTML元素。我这样做的方法是设置
body {
-{$prefix}-user-select: none;
user-select: none;
}
div.element-to-select {
-{$prefix}-user-select: all;
user-select: all;
}
我还在http://codepen.io/daredevil82/pen/zxPzbJ编写了一个代码表来进行演示。在此示例中,当鼠标焦点位于白色区域时,Ctrl-A
按下将突出显示选择文本,但无选择文本将保持未突出显示在Firefox 35+和Chrome中,但在IE 11中不会选择这两个元素。
IE有这种行为吗?
答案 0 :(得分:3)
CSS3的工作草稿用户界面定义user-select
,如下所示:
此属性不是继承的,但确实会影响到的 与
display: none
相同,它限制了它。那是一个元素 是user-select: none
,user-select
值无关紧要 是它的孩子,元素的内容或它的儿童内容 无法选择。
根据该草案,Firefox实施了-moz-user-select: none
;并且还实现了-moz-user-select: -moz-none
,允许使用-moz-user-select: text
在子元素上重新启用选择。
但是,从Firefox 21开始,由于Bug 816298,-moz-user-select: none
的行为与-moz-user-select: -moz-none
类似:
我们的
-moz-user-select: none
的行为与css3-userint TR中的建议相同 但是WebKit,IE和Opera的-XXX-user-select: none
表现得像-moz-user-select: -moz-none
。
不确定错误是否错误,IE也遵循提议的规范,或者IE是否稍后改变了行为。但现在IE似乎是唯一跟随它的主要浏览器。
但是,你不能依赖那个草案。 CSS3模块的用户界面已被CSS Basic User Interface Module Level 3 (CSS3 UI)取代,但不包括user-select
。
因此,由于user-select
不再是标准,因此实现者可能不会更改其实现,以便在不同的浏览器之间具有共同的行为。