Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Privatsphäre und der :visited-Selektor

Ursprünglich stellte der CSS :visited-Selektor ein Risiko für die Privatsphäre und Sicherheit dar. Mit ein wenig JavaScript konnten Websites den Browserverlauf eines Benutzers aufdecken und herausfinden, welche Seiten der Benutzer besucht hatte. Dies wurde mit Methoden wie window.getComputedStyle und anderen Techniken erreicht. Dieser Prozess war schnell und ermöglichte es Websites nicht nur festzustellen, wo der Benutzer im Internet gewesen war, sondern auch, viele Informationen über die Identität des Benutzers zu erraten.

Um diese Sorge um die Privatsphäre zu mindern, begrenzen Browser die Menge an Informationen, die von besuchten Links abgerufen werden können.

Kleine Notlügen

Um die Privatsphäre der Benutzer zu schützen, täuschen Browser Webanwendungen unter bestimmten Umständen:

  • Die Methode window.getComputedStyle und ähnliche Funktionen, wie element.querySelector, geben immer Werte zurück, die darauf hindeuten, dass ein Benutzer keinen der Links auf einer Seite besucht hat.
  • Bei der Verwendung eines Nachbarselektors, wie :visited + span, wird das angrenzende Element (span in diesem Beispiel) so gestylt, als wäre der Link nicht besucht.
  • In seltenen Fällen, wenn Sie verschachtelte Link-Elemente verwenden und das übereinstimmende Element sich von dem unterscheidet, dessen Vorhandensein im Verlauf getestet wird, wird das Element so dargestellt, als wäre der Link nicht besucht.

Sie können besuchte Links stilisieren, aber es gibt Einschränkungen, welche Stile Sie verwenden können. Nur die folgenden Stile können auf besuchte Links angewendet werden:

Darüber hinaus werden auch bei den oben genannten Stilen Transparenzunterschiede zwischen unbesuchten und besuchten Links nicht angewendet. Diese Einschränkung verhindert die Verwendung des alpha-Parameters in verschiedenen <color>-Funktionen oder des transparent Schlüsselworts, um zwischen den beiden Zuständen zu unterscheiden.

Hier ist ein Beispiel, wie Stile mit den oben genannten Einschränkungen verwendet werden können:

css
:link {
  outline: 1px dotted blue;
  background-color: white;
  /* The default value of `background-color` is `transparent`. You need to
     specify a different value, otherwise changes on `:visited` won't apply. */
}

:visited {
  outline-color: orange; /* Visited links have an orange outline */
  background-color: green; /* Visited links have a green background */
  color: yellow; /* Visited links have yellow colored text */
}

Auswirkungen auf Webentwickler

Sie sollten Folgendes in Betracht ziehen, wenn Sie Websites entwickeln:

  • Das Ändern von background-image-Werten basierend auf dem Besuchsstatus eines Links funktioniert nicht, da nur Farben verwendet werden können, um besuchte Links zu stylen.
  • Farben, die ansonsten transparent sind, werden nicht angewendet, wenn sie über einen :visited-Selektor gestylt werden.

Siehe auch