17

使用这些 css 样式,我可以防止页面上突出显示的文本选择。但这会导致输入字段被 Safari 上的用户输入锁定。

* {
-webkit-touch-callout: none;
-webkit-user-select: none; // locks fields on Safari
-khtml-user-select: none; // locks fields on Safari
-moz-user-select: none;
-ms-user-select: none;
user-select: none;      
}

Safari 有没有办法在不干扰输入字段的情况下防止用户选择?

4

4 回答 4

26

为什么不将样式应用于除输入之外的所有内容?

css3方式: *:not(input){...}

于 2012-05-30T15:42:28.290 回答
3

没什么新鲜的 :)

*:not(input, textarea){
    -webkit-touch-callout: none;
    -webkit-user-select: none; // locks fields on Safari
    -khtml-user-select: none; // locks fields on Safari
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
于 2020-02-05T13:31:01.993 回答
1

对于 css 中的每种情况:

*:not(input), *:focus:not(input) {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  outline-style:none;/*IE*/
}
于 2016-09-14T10:02:12.583 回答
0

我需要一些更精确的东西。

input[type=text] 
{
  -webkit-user-select: text;
}

input[type=password]
{
  -webkit-user-select: all;
}
于 2013-09-18T14:07:52.583 回答