molily: CSS-Funktionalität per Javascript abfragen

Beitrag lesen

Hallo,

Wie aber frage ich im Javascript ab, ob der Browser eine bestimmte CSS-Funktionalität beherrscht?
Konkret geht es darum, ob der Browser :hover für nicht-Links unterstützt.

Ich denke mal, du willst mit JavaScript die :hover-Funktionalität nachbauen.
Wahrscheinlich machst du es dir nur viel schwerer, wenn du zusätzlich zur :hover-Logik auch noch eine Browsererkennung programmierst. Du kannst erst dann wissen, ob :hover funktioniert, wenn der Hover eintritt. In dem Moment des Mouseovers kannst du mit JavaScript abfragen, ob die :hover-Regel angewendet wurde und sich die faktischen CSS-Eigenschaftswerte (currentSTyle, getComputedStyle) geändert haben. Dann kannst du entscheiden, ob du per JavaScript manuell eine Klassenänderung o.ä. vornehmen musst. (Man könnte natürlich auch andere Indikatoren verwenden, etwa mit body:hover irgendeine irrelevante Eigenschaft setzen, deren Änderung man mit JavaScript abfragen kann.)

Die Event-Handler musst du bei den relevanten Elementen (oder beim document-Objekt, wo alle Events vorbeikommen) sowieso registrieren. Warum also nicht alles mit JavaScript lösen, solange es solche Browser gibt? Oder du denkst dir wie beschrieben eine saubere Logik aus, die überprüft, ob die :hover-Styles bereits angewendet wurden und im negativen Falle noch einmal eingreift.

Mathias