用户选择:无导致 Safari 上无法访问输入字段

Posted

技术标签:

【中文标题】用户选择:无导致 Safari 上无法访问输入字段【英文标题】:User select:none causes input field to be inaccessible on Safari 【发布时间】:2012-06-04 21:09:49 【问题描述】:

使用这些 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 有没有办法在不干扰输入字段的情况下防止用户选择?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

不要忘记文本区域:*:not(input textarea)... @tomaspolach 您的语法不正确。正确的语法是:*:not(input):not(textarea)【参考方案2】:

没什么新鲜的:)

*: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;

【讨论】:

【参考方案3】:

对于 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*/

【讨论】:

【参考方案4】:

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

input[type=text] 

  -webkit-user-select: text;


input[type=password]

  -webkit-user-select: all;

【讨论】:

在功能方面有什么区别?抱歉,我知道我可以试试,只是真的很忙…… 这将只选择类型属性设置为文本或密码的特定输入元素。这是不支持not 的旧浏览器所必需的。但是,我会这样做:* ... user-select: none; input ... user-select: text;

以上是关于用户选择:无导致 Safari 上无法访问输入字段的主要内容,如果未能解决你的问题,请参考以下文章

SSL证书无法在Safari上运行

在 Mobile Safari 中选择 onchange 后,将焦点设置为输入字段

共享文件夹无法访问没有权限

访问:取消报告生成导致错误 2501

单击 Chrome 和 Safari 中的输入字段后的奇怪行为

无法使用占位符和 ng-model 输入文本字段(仅在 safari 中)