Rollover-Bild per CSS ohne Verwendung von JavaScript

Oft sieht man Seiten, die Rollover-Bilder verwenden – doch sind die meist per JavaScript realisiert. Doch das geht auch einfacher mit CSS.

Die JavaScript-Methode

Allerdings darf man sich das nicht genau so vorstellen wie bei JavaScript. Mit JavaScript sieht ein Rollover so aus:

Nachteile der JavaScript-Methode

  1. Browser, die kein JavaScript können oder es nicht aktiviert haben, können den Bilderwechsel nicht darstellen.

Die CSS-Methode

In CSS sieht das ganze ein bisschen anders aus. Dort gibt es kein onmouseover, lediglich die Pseudoklasse :hover. Und in CSS kann man auch nicht einfach so die Attribute von HTML-Elementen ändern. Also muss man sich anders behelfen:

Nachteile von CSS-Rollovers

Es gibt leider auch Nachteile bei dieser Methode:

  1. Der Internet-Explorer kann in keiner Version :hover auf nicht-<a>-Elemente anwenden. Das schließt also diese Methode für den IE aus, es sei denn, man nimmt tatsächlich ein a-Element, deklariert es als Block-Element und gibt ihm einen :hover-Effekt.
  2. Da kein img-Element verwendet wird, kann kein alt-Attribut angegeben werden. Dies ist für Textbrowser und Screenreader aber sehr wichtig, wenn das Bild für das Verständnis des Textes sehr wichtig ist. Abhilfe schafft folgendes: In das div wird zusätzlich noch das Bild als img hineingeschrieben (mit Alt-Attribut) und per CSS als nicht darzustellen deklariert, mit #rolloverbild img { display: none; }.

Hier ein Beispiel für ein CSS-Rollover-Bild:


© Julius Plenz, <jp@cvmx.de>