Lösen von Problemen mit Sticky Hover-Zuständen mit @media (hover: hover)

Avatar of Chris Coyier
Chris Coyier am

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

Mezo Istvan beschreibt das Problem und eine Lösung dazu gut in einem Blogbeitrag auf Medium¹.

Wenn Sie auf etwas tippen, das einen :hover-Zustand hat, aber die Seite nicht verlassen, besteht auf einem Mobilgerät die Gefahr, dass der :hover-Zustand "kleben" bleibt. Das sehen Sie bei Dingen wie Jump-Links, die als Tabs oder Buttons verwendet werden, die Funktionalität auf der Seite auslösen.

button:hover {
  border: 3px solid green; /* might stick! */
}

Die Lösung oder der Trick ist eine neue(re) „CSS4“-Media Query, die es Ihnen ermöglicht, Stile nur auf Geräten mit Hover-Fähigkeit anzuwenden.

@media (hover: hover) {
  button:hover {
    border: 3px solid green; /* solves sticky problem */
  }
}

Ihr typisches Touchscreen-Mobilgerät wird diese Media Query nicht erfüllen, der Stil wird nicht angewendet und Sie vermeiden das Klebenbleiben.

Die Unterstützung ist solide, also kein großer Grund zur Sorge.

  1. Es fühlt sich fast so an, als müssten wir uns dafür entschuldigen, in letzter Zeit auf Dinge auf Medium zu verlinken. Ich habe keine Ahnung, was Sie dort erleben werden. Können Sie es einfach lesen? Ist es ein Teaser, für den Sie sich anmelden müssen, um mehr zu lesen? Steht es hinter einer Paywall? Ich habe keine Ahnung. Hoffentlich enthält dieser Link-Post in diesem Fall genügend Informationen, die Sie nicht davon abhalten, etwas zu lernen.


Direkter Link →