【发布时间】:2016-10-21 04:25:16
【问题描述】:
我需要使 contenteditable div 中的某些元素不可选择,以便用户在尝试将插入符号移动到它们所在的位置时会跳过它们。
显而易见的解决方案似乎是使用user-select: none 设置这些部分的样式。这在 Firefox 中运行良好,但不幸的是,在 Google Chrome 中完全失败了。
.ok {
-webkit-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
.nope {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
<div contenteditable="true" readonly>
<span class="ok">One</span><span class="nope">Two</span><span class="ok">Three</span>
<div class="nope">
<span class="ok">One</span><span class="nope">Two</span><span class="ok">Three</span>
</div>
<span class="nope">One</span><span class="ok">Two</span><span class="nope">Three</span>
<div class="nope">
<span class="nope">One</span><span class="ok">Two</span><span class="nope">Three</span>
</div>
</div>
有没有办法让它在 Chrome 中也能正常工作,或者这是一个无法克服的限制?
【问题讨论】:
-
也适用于
input[type=text],我想也适用于其他input[types]
标签: html css cross-browser contenteditable