Banner

Dynamische Menü ohne Javascript mit CSS


CSS-Menu-Beispiel

Viele möchten sicher ein dynamisches ausklappendes Menü erstellen. Dafür gibt es mehrere Möglichkeiten: Javascript, Flash, Java, ...
Nichts davon ist barrierefrei. Hier möchte ich zeigen, wie man ein aufklappendes dynamisches Menü ohne Javascript erstellen kann.

<html> <head> <style type="text/css"><!-- /* Linkgestaltung */ a { color:#003C9D; Text-Decoration:underline; } a:hover { color:#F60; } /* Menü */ .menu1 { background: beige; border: 1px solid #000; width: 120px; padding: 2px; } .anchor { position: relative; display: inline; } .m1 { display: none; position: absolute; z-index: 10; margin-top: -15px; width: 165px; } .m1 li { background: beige; padding: 2px; display: block; width: 165px; border: 1px solid #000; } .menu1:hover .m1 { display: block; } --></style> </head> <body> <div class="menu1" onclick='void(0)'> <a>See -></a> <div class="anchor"> <ul class="m1"> <li><a href='?l=bsp1'>Beispiel 1</a></li> <li><a href='?l=bsp2'>Beispiel 2</a></li> </ul> </div> </div> </body> </html>

Im Bereich "Linkgestaltung" wird das allgemeine Aussehen eines Links definiert.
.menu1 definiert den Kasten um einen Hauptmenüpunkt.
.anchor wird zu einem Positionierungspunkt. Da hier ein position-Befehl verwendet wird, bezieht sich das nachfolgende absolute Element auf diesen Punkt.
.m1 ist dieses absolute Element. Es ist generell unsichtbar und durch die absolute Positionierung und den hohe z-index steht es in der Luft im Vordergrund. Es ist außerdem der Container für die Links des Untermenüs.
.m1 li entspricht der Definition von .menu1.
.menu1:hover .m1 ist der Trick: beim Berühren mit der Maus wird die sonst unsichtbare Box sichtbar. Ein dynamisches Menü ist entstanden. Und das völlig barrierefrei.