So beenden Sie das Hervorheben eines div-Elements beim Doppelklicken


90

Ich habe dieses div-Element mit einem Hintergrundbild und möchte aufhören, das div-Element hervorzuheben, wenn ich darauf doppelklicke. Gibt es dafür eine CSS-Eigenschaft?


In welchem ​​Browser bist du? Bei meinen Tests konnte ich in Firefox 5, Chrome 12 oder IE9 kein ganzes Div hervorheben.
Tw16

Antworten:


154

Das folgende CSS verhindert, dass Benutzer Text auswählen können. Live-Beispiel: http://jsfiddle.net/hGTwu/20/

-webkit-user-select: none; /* Chrome/Safari */        
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */

/* Rules below not implemented in browsers yet */
-o-user-select: none;
user-select: none;

Um IE9 nach unten und Opera auszurichten, unselectablemuss stattdessen das HTML-Attribut verwendet werden:

<div unselectable="on">Test Text</div>

das hat nicht verhindert, dass das gesamte div hervorgehoben wird. Mir ist aufgefallen, dass es nur für Text war. Ich möchte verhindern, dass das gesamte Div hervorgehoben wird, wenn Sie darauf doppelklicken.
Dave

@dave: Ich nahm an, dass das einzige Mal, wenn ein Doppelklick eine Hervorhebung verursachte, der Text darin war, was Sie meinten. Keine Notwendigkeit, abzustimmen.
Tw16

1
Funktioniert nicht in IE oder Opera. Sie benötigen das unselectableAttribut. Es gibt -o-user-selectübrigens keine .
Tim Down

Hinweis für SASS / SCSS-Benutzer: Sie können @include user-select(none);anstelle von rohem CSS
hilnius

Seltsamerweise wurden die Divs dadurch schleppbar, selbst wenn draggable = false, aber nur unter Firefox.
Rovyko

49

Das funktioniert bei mir

html
{
  -webkit-tap-highlight-color:transparent;
}

Dies sollte die beste Antwort sein.
JohnA10

11
Dies ist nur für Webkit-Browser wie Chrome und Safari relevant und funktioniert wahrscheinlich in keiner Version von IE oder Firefox.
Simon East

30

Ich habe versucht, eine Lösung zu finden, um das Hervorheben von Divs in Chrome zu stoppen, und mich diesem Beitrag zugewandt. Leider hat keine der Antworten mein Problem gelöst.

Nach vielen Online-Recherchen stellte ich fest, dass das Update sehr einfach ist. Es ist kein komplexes CSS erforderlich. Fügen Sie einfach das folgende CSS zu Ihrer Webseite hinzu und schon sind Sie fertig. Dies funktioniert sowohl auf Laptops als auch auf mobilen Bildschirmen.

div { outline-style:none;}

HINWEIS : Dies funktionierte in Chrome Version 44.0.2403.155 m. Außerdem wird es in allen gängigen Browsern von heute unterstützt, wie unter dieser URL erläutert: https://developer.mozilla.org/en-US/docs/Web/CSS/outline-style


8

Ich bin kein CSS-Experte, aber ich denke, Sie können die Antwort von tw16 verwenden, solange Sie die Anzahl der betroffenen Elemente erhöhen. Dies verhindert beispielsweise, dass überall auf meiner Seite hervorgehoben wird, ohne dass eine andere Art von Interaktivität beeinträchtigt wird:

*, *:before, *:after {
    -webkit-user-select: none; /* Chrome/Safari */        
    -moz-user-select: none; /* Firefox */
    -ms-user-select: none; /* IE10+ */
}

Diese erste Zeile wurde freundlicherweise von Paul Irish zur Verfügung gestellt (über http://adamschwartz.co/magic-of-css/chapters/1-the-box/ ).


Verwenden Sie dieses CSS niemals, wenn Sie eine PWA unter iOS 13 haben. Dadurch wird die Tastatur vollständig blockiert.
Fer

2

Ziel alle div-Elemente:

div::-moz-selection { background:transparent; }
div::selection { background:transparent; }

Ziel alle Elemente:

::-moz-selection { background:transparent; }
::selection { background:transparent; }

1

Benutzerauswahl deaktivieren:

div {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

Hintergrund für ausgewähltes Element transparent setzen:

div::-moz-selection { background:transparent; }
div::selection { background:transparent; }

3
Während dieses Code-Snippet die Frage lösen kann, hilft eine Erklärung wirklich dabei, die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in Zukunft beantworten und diese Personen möglicherweise die Gründe für Ihren Codevorschlag nicht kennen.
msrd0
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.