CSS Horizontales Menü / Vertikale Menüpunkte immer unter erster Spalte

Hallo,

ich hoffe, ihr könnt mir helfen :smile:

Daran arbeite ich grad:
Ich habe ein HTML-Template für Joomla erstellt und habe dort eine horizontale Navigation mittels ungeordneten Listenpunkten hergestellt. Zu diesen Hauptmenüpunkten sind Unterlisten erstellt, die auf weitere Seiten verweisen sollen. Direkt nach dem Navigations-Container (#navigation) folgt ein weiterer DIV-Container für ein Slideshow-Plugin. Beide Container sind fix mit Breite und Höhe verankert. Das Problem an der Sache ist, dass zwar IDs für die Menüpunkte erstellt werden, diese sich aber jederzeit ändern könnten.

Ich habe das Layout soweit mit CSS fixiert, allerdings passiert was eigenartiges: sobald ich mittels Hover über einen horizontalen Hauptmenüpunkt gehe, erscheinen zwar die enthaltenen (vertikalen) Unterpunkte, aber stets unter dem ersten Menüpunkt; langsam bin ich ratlos.

Ich habe einen Auszug aus der generierten Joomla-HTML (stark gekürzt), es wird folgender Beispielcode für die Menüstruktur ausgeworfen:

\<li class="item-101 current active"\>\<a href="/web/"\>Home\</a\>\</li\>
\<li class="item-108 deeper parent"\>\<a href="/web/index.php/haupteintrag-1"\>Haupteintrag 1\</a\>
\<ul class="nav-child unstyled small"\>
\<li class="item-112"\>\<a href="/web/index.php?Itemid=112"\>Sub 1-1\</a\>\</li\>
\<li class="item-113"\>\<a href="/web/index.php?Itemid=113"\>Sub 1-2\</a\>\</li\>
\</ul\>
\</li\>
\<li class="item-109 deeper parent"\>\<a href="/web/index.php/haupteintrag-2"\>Haupteintrag 2\</a\>
\<ul class="nav-child unstyled small"\>
\<li class="item-114"\>\<a href="/web/index.php?Itemid=114"\>Sub 2-1\</a\>\</li\>
\<li class="item-115"\>\<a href="/web/index.php?Itemid=115"\>Sub 2-2\</a\>\</li\>
\<li class="item-116"\>\<a href="/web/index.php?Itemid=116"\>Sub 2-3\</a\>\</li\>
\</ul\>
\</li\>
\<li class="item-110 deeper parent"\>\<a href="/web/index.php/haupteintrag-3"\>Haupteintrag 3\</a\>
\<ul class="nav-child unstyled small"\>
\<li class="item-117"\>\<a href="/web/index.php?Itemid=117"\>Sub 3-1\</a\>\</li\>
\<li class="item-118"\>\<a href="/web/index.php?Itemid=118"\>Sub 3-2\</a\>\</li\>
\<li class="item-119"\>\<a href="/web/index.php?Itemid=119"\>Sub 3-3\</a\>\</li\>
\<li class="item-120"\>\<a href="/web/index.php?Itemid=120"\>Sub 3-4\</a\>\</li\>
\</ul\>
\</li\>

Momentan habe ich folgende Einstellungen in der CSS eingetragen: (gekürzter Auszug aus der Navigations-Konfiguration; #navigation entspricht dem Container):

#navigation {
 width: 980px;
&nbsp;&nbsp; &nbsp;height: 40px;
&nbsp;&nbsp; &nbsp;float: left;
&nbsp;&nbsp; &nbsp;background: #223344;
}

#navigation \*{
&nbsp;&nbsp; &nbsp;list-style: none;
}

#navigation li{
&nbsp;&nbsp; &nbsp;position: relative;
}

#navigation li a, li:visited a{
&nbsp;&nbsp; &nbsp;float: left;
&nbsp;&nbsp; &nbsp;color: #eeeeee;
&nbsp;&nbsp; &nbsp;text-decoration: none;
&nbsp;&nbsp; &nbsp;display: block;
&nbsp;&nbsp; &nbsp;width: 153px;
&nbsp;&nbsp; &nbsp;line-height: 40px;
&nbsp;&nbsp; &nbsp;text-align: center;
&nbsp;&nbsp; &nbsp;border-left: 1px solid #666666;
&nbsp;&nbsp; &nbsp;border-right: 1px solid #CCCCCC;
}

#navigation li:hover a{
&nbsp;&nbsp; &nbsp;float: left;
&nbsp;&nbsp; &nbsp;color: #111111;
&nbsp;&nbsp; &nbsp;background-color: #eeeeee;
&nbsp;&nbsp; &nbsp;text-decoration: none;
&nbsp;&nbsp; &nbsp;display: block;
&nbsp;&nbsp; &nbsp;width: 153px;
&nbsp;&nbsp; &nbsp;line-height: 40px;
&nbsp;&nbsp; &nbsp;text-align: center;
&nbsp;&nbsp; &nbsp;border-left: 1px solid #666666;
&nbsp;&nbsp; &nbsp;border-right: 1px solid #CCCCCC;
}

/\* Unterebene der Navigation: \*/
#navigation ul ul{
&nbsp;&nbsp; &nbsp;position: absolute;
&nbsp;&nbsp; &nbsp;z-index: 500;
&nbsp;&nbsp; &nbsp;top: 40px;
&nbsp;&nbsp; &nbsp;width: 153px;
&nbsp;&nbsp; &nbsp;float: none;
}

#navigation ul ul li a, ul ul li a:visited{
&nbsp;&nbsp; &nbsp;float: none;
&nbsp;&nbsp; &nbsp;color: #eeeeee;
&nbsp;&nbsp; &nbsp;text-decoration: none;
&nbsp;&nbsp; &nbsp;width: 153px;
&nbsp;&nbsp; &nbsp;line-height: 40px;
&nbsp;&nbsp; &nbsp;text-align: center;
&nbsp;&nbsp; &nbsp;border-left: 1px solid #666666;
&nbsp;&nbsp; &nbsp;border-right: 1px solid #CCCCCC;
&nbsp;&nbsp; &nbsp;background: #223344;
}

#navigation ul ul li:hover a, ul ul li:active{
&nbsp;&nbsp; &nbsp;float: none;
&nbsp;&nbsp; &nbsp;color: #111111;
&nbsp;&nbsp; &nbsp;background-color: #eeeeee;
&nbsp;&nbsp; &nbsp;text-decoration: none;
&nbsp;&nbsp; &nbsp;width: 153px;
&nbsp;&nbsp; &nbsp;line-height: 40px;
&nbsp;&nbsp; &nbsp;text-align: center;
&nbsp;&nbsp; &nbsp;border-left: 1px solid #666666;
&nbsp;&nbsp; &nbsp;border-right: 1px solid #CCCCCC;
}

&nbsp;&nbsp;&nbsp; div#navigation ul ul,
&nbsp;&nbsp;&nbsp; div#navigation ul li:hover ul ul,
&nbsp;&nbsp;&nbsp; div#navigation ul ul li:hover ul ul
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {display: none;} 

&nbsp;&nbsp;&nbsp; div#navigation ul li:hover ul,
&nbsp;&nbsp;&nbsp; div#navigation ul ul li:hover ul,
&nbsp;&nbsp;&nbsp; div#navigation ul ul ul li:hover ul
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {display: block;} 

Vermutlich ist die Lösung recht einfach, aber ich seh’s einfach nicht… wie kann ich im CSS definieren, dass der vertikal anzuzeigende Untermenüpunkt direkt unter dem horizontalen Hauptmenüpunkt erscheint?

Mit Firebug hab ich schon ein wenig rumexperimentiert, leider kam ich da auch auf keinen grünen Zweig. Das Projekt liegt im Moment auf meinem lokalen Webserver, daher kann ich euch leider keinen Link zur Seite geben. Sollte das ein Problem sein, gebt mir das bitte einfach bekannt, dann versuche ich diese auf meinen Webspace hochzuladen.

Vielleicht hatte einer von euch ja schon ein ähnliches Problem und kann mir weiterhelfen.

Danke für Eure Tipps im Voraus,
LG
MtB1980

Hai, MtB1980,

Du hast die Untermenues auf position:absolute gesetzt. Damit sind sie aus dem normalen Fluß der Elemente herausgenommen. Die Höhe hast Du auf 40 px gesetzt - die Entfernung zum linken Rand hast Du nicht erwähnt und damit gilt left:0px…

Gruß
Sibylle

Hallo und Sorry für die späte Antwort - Weihnachten, die Zeit des Stresses (leider)…

okay, ich hab’s hinbekommen, Danke für den Tipp!

Ich habe alle Absolut-/Relativ-Angaben entfernt und nur noch auf den entsprechenden Untermenüpunkten angewandt, jetzt scheint alles zu funktionieren (Halleluja :smiley: )

Danke nochmals!