Die proprietären Varianten von user-select
funktionieren in den meisten modernen Browsern:
*.unselectable {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
/*
Introduced in IE 10.
See http://ie.microsoft.com/testdrive/HTML5/msUserSelect/
*/
-ms-user-select: none;
user-select: none;
}
Für IE <10 und Opera müssen Sie das unselectable
Attribut des Elements verwenden, dessen Auswahl Sie aufheben möchten. Sie können dies mithilfe eines Attributs in HTML festlegen:
<div id="foo" unselectable="on" class="unselectable">...</div>
Leider wird diese Eigenschaft nicht vererbt, was bedeutet, dass Sie ein Attribut in das Start-Tag jedes Elements innerhalb von einfügen müssen <div>
. Wenn dies ein Problem ist, können Sie stattdessen JavaScript verwenden, um dies rekursiv für die Nachkommen eines Elements durchzuführen:
function makeUnselectable(node) {
if (node.nodeType == 1) {
node.setAttribute("unselectable", "on");
}
var child = node.firstChild;
while (child) {
makeUnselectable(child);
child = child.nextSibling;
}
}
makeUnselectable(document.getElementById("foo"));
-moz-none
es der richtige Weg. Ich werde meine Antwort ändern.-moz-none
scheint von Firebug nicht automatischnone
-moz-user-select: none
user-select
nur um Text und keine anderen Elemente gehtEs scheint, dass die CSS-Benutzerauswahl das Ziehen und Ablegen von Bildern nicht verhindert ... also ..
HTML:
CSS:
JS:
quelle
Ich benutze
cancelBubble=true
undstopPropagation()
in der Maus nach unten und bewege Handler.quelle
event.preventDefault()
scheint den Trick zu tun (getestet in IE7-9 und Chrome):quelle
Haben Sie ein transparentes Bild, das Sie auswählen? Normalerweise wird das Symbol "Kann nicht fallen gelassen" angezeigt, wenn Sie ein Bild ziehen. Andernfalls wird normalerweise beim Ziehen Text ausgewählt. In diesem Fall müssen Sie das Bild möglicherweise mithilfe des Z-Index hinter alles stellen.
quelle