Die standardkonformen Browser (Firefox, Konqueror, Mac Safari, Mozilla, Netscape, Opera, usw.) unterstützen die allgemeine Pseudoklasse :hover für alle HTML-Elemente, also z.B. li:hover, der IE aber erst seit dem Release der 7er-Version, und seine Vorgänger nur für die Hyperlinks <a> (a:hover).
Zu Zeiten des IE5.5 und IE6 war ich auf der Suche nach einer technischen Alternative, um in diesen Browserversionen ebenfalls einen "hover"-Effekt auf ein beliebiges HTML-Element anwenden zu können, und bin in Javascript auf die className-Eigenschaft des all-Objekts aufmerksam geworden.
In diesem Tutorial stelle ich diese Eigenschaft etwas näher vor, und demonstriere, wie für ein HTML-Element zwei CSS-Klassen getauscht werden können.
Diese Technik lässt sich im Grunde genommen auf alle HTML-Elemente anwenden - eine Auswahl sei hier in alphabetischer Reihenfolge genannt:
Im ersten Schritt werden im Stylesheet zwei CSS-Klassen (hier: .normal und .hover) angelegt und in ihnen die gewünschten CSS-Formatierungen festgelegt:
Die CSS-Klasse .normal wird mit dem Universalattribut class im HTML-Element aufgerufen:
Anmerkung:
Die von mir gewählten Klassen-Namen lassen sich natürlich auch umbenennen, dies ist dann aber auch in der JavaScript-Anweisung für die Event-Handler zu berücksichtigen!
Zum Tauschen der CSS-Klassen sind die Event-Handler onmouseover und onmouseout= erforderlich. Sie erhalten die JavaScript-Anweisung "this.className='[className]';" und werden ebenfalls in den <li>-TAGs notiert: