Ein super seltsamer CSS-Bug, der die Textauswahl beeinflusst

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Sie wissen, wie Sie ausgewählten Text (bis zu einem gewissen Grad) mit ::selection stylen können? Nun, Jeff Starr hat aufgedeckt einen verdammt seltsamen CSS-Bug.

Wenn Sie

  1. Lassen Sie den Selektor leer
  2. Verlinken Sie es aus einer externen Stylesheet (anstatt einem <style>-Block)

Beim Markieren von Text wird überhaupt kein Stil angewendet. 😳😬😕

Mit anderen Worten, wenn Sie <link rel="stylesheet" ...> einige CSS, die diese leeren Selektoren enthalten

::-moz-selection {
}
::selection {
}

Dann scheint Text nicht auswählbar zu sein. Man kann den Text tatsächlich immer noch auswählen, also ist es ein bisschen so, als hätte man ::selection { background: transparent; } anstelle von user-select: none; verwendet.

Die Tatsache, dass es in den meisten Browsern (Safari ist eine seltene Ausnahme) so funktioniert, lässt es so aussehen, als sei es so spezifiziert, aber ich nenne es einen Bug. Ein Selektor ohne Eigenschaften darin sollte im Wesentlichen ignoriert werden, anstatt etwas so drastisches zu tun.

Jeff hat eine Demo gemacht. Ich habe auch eine gemacht, um sie zu bestätigen.

Siehe den Stift
Unsichtbarer Textauswahl-Bug
von Chris Coyier (@chriscoyier)
auf CodePen.