So, diese Frage richtet sich an absolute CSS-Profis.
Was ich vorhabe
Der Einfachkeit halber beschreibe ich nur die erste Menüebene.
Ich möchte ein vertikales Textmenü erstellen mit einer Gesamtbreite von 190 Pixel. auf voller Breite sollen die einzelnen Menüpunkte unterstrichen sein, gestrichelt. Wenn man mit der Maus über den Menüpunkt geht, soll der Punkt auf gesamter Breite (190 Pixel) grau hinterlegt sein. Auch soll die gesamte Breite verlinkt sein. Vom linken Rand soll der Text des Menüs 10 Pixel eingerückt sein.
Meine Idee
CSS
div.mnu_1 {
width: 190px;
}
div.mnu_1 a {
width: 100%;
font-size: 12px;
color: #00468C;
padding-left: 10px;
text-decoration: none;
border-bottom: 1px dashed #DDDDDD;
}
div.mnu_1 a:hover {
background-color: #F1F1F1;
}
Alles anzeigen
HTML
Mein Problem
IE, Opera rendern das Boxmodell nicht nach Spezifikationen, sprich, width ist die Gesamtbreite des Objektes, padding wird vom für den Content zur Verfügung stehenden Platz abgezogen.
FF rendert das ganze nach Spezifikationen. Width ist die Breite des Contents, padding wird zum width addiert. Der Layer ist nun 200 Pixel breit.
Weiterhin gibt es für a kein width, so dass alles grau hinterlegt werden könnte, funktioniert nur im IE.
Lösungsansätze
max-width gibt zwar die maximale Breite eines Objektes an und wird vom IE nicht interpretiert, aber vom Opera, also wieder ein Browser, in dem es anders aussieht.
DOCTYPE hinzugefügt, damit der IE und Opera width nach den Spezifikationen rendert. Leider unterstützt das Dokument dann in Tabellen nicht mehr das Parameter height. Auch wenn ich height in das TD schreibe wird es nicht übernommen. Zur Erklärung, ich möchte, dass das dokument auf voller Seitenhöhe angezeigt wird (Rahmen links).
Was kann ich tun?