Ich muss einige Elemente in einem contenteditable
div
nicht auswählbar machen, so dass der Benutzer sie überspringt, wenn sie versuchen, den Caret herum bewegen, wo sie sind. Die offensichtliche Lösung scheint zu sein, diesen Teilen den user-select: none
Stil zu geben. Und das funktioniert wirklich gut in Firefox, aber leider komplett in Google Chrome fehlschlägt.Chrome scheint zu ignorieren Benutzer-Select in einem contenteditable div
.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>
Gibt es eine Möglichkeit, dies auch in Chrome zur Arbeit zu kommen, oder ist es eine unüberwindbare Begrenzung?
Einblick in warum Chrome ignorieren kann 'user-select: none;' auf bearbeitbare ... Von der Spezifikation: _If das Element ein editierbares Element ist, der berechnete Wert ist 'contain' _ – roark
Die Entwicklung hat einen anderen Weg genommen (mit einem anderen Editor), so dass es für mich schwierig sein würde zu testen, ob das funktioniert ... Ich akzeptiere die Antwort bis auf weiteres. – Septagram