Precog
Erfahrenes Mitglied
Hallo,
ich habe mir ein Dropdown-Menü (horizontal) mit CSS und JS (eine JS-freie Version wäre zwar wirklich wünschenswert, aber irgendwie kann ich sie nicht zufriedenstellend auf die Beine stellen) zusammengebastelt und erfolgreich im IE und FF getestet. Dann kam der FF3 und brachte alles durcheinander. Es droppt zwar noch, allerdings nicht so wie im FF2. Die Dropdown-Liste verschiebt sich nach unten.
Folgendes scheint mir das Problem zu sein: Wenn ich in CSS definiere, dass das Dropdown (sagen wir mal "Wer","Wie","Wo") von "Über uns" beim Hover 20px unter dem "Über uns"-Link auftauchen soll, fängt der FF2 an der Unterkante der Schrift "Über uns" an zu zählen und der FF3 an der Unterkante der <li> bzw <a> "box". So ist im FF3 ein vertikaler Abstand von bsp. 20px zwischen dem Link "Über uns" und dessen "Dropdown-Box" zu sehen.
Ich poste mal den Code, bin wie immer für jede Hilfe dankbar (auch bezgl. JS-freie Version).
CSS:
HTML:
JS:
ich habe mir ein Dropdown-Menü (horizontal) mit CSS und JS (eine JS-freie Version wäre zwar wirklich wünschenswert, aber irgendwie kann ich sie nicht zufriedenstellend auf die Beine stellen) zusammengebastelt und erfolgreich im IE und FF getestet. Dann kam der FF3 und brachte alles durcheinander. Es droppt zwar noch, allerdings nicht so wie im FF2. Die Dropdown-Liste verschiebt sich nach unten.
Folgendes scheint mir das Problem zu sein: Wenn ich in CSS definiere, dass das Dropdown (sagen wir mal "Wer","Wie","Wo") von "Über uns" beim Hover 20px unter dem "Über uns"-Link auftauchen soll, fängt der FF2 an der Unterkante der Schrift "Über uns" an zu zählen und der FF3 an der Unterkante der <li> bzw <a> "box". So ist im FF3 ein vertikaler Abstand von bsp. 20px zwischen dem Link "Über uns" und dessen "Dropdown-Box" zu sehen.
Ich poste mal den Code, bin wie immer für jede Hilfe dankbar (auch bezgl. JS-freie Version).
CSS:
HTML:
#nav, #nav ul {
padding: 0;
margin: 0;
list-style: none;
z-index:2;
}
/* ------------------------ */
/* STYLING 1st LINE */
/* ------------------------ */
#nav a {
margin:12px 20px;
display: block;
width:auto;
}
#nav li {
background:none;
float: left;
width:auto;
height:38px;
}
#nav li.divider {
background-image:url(../img/structure/menu_divide.gif);
background-repeat:no-repeat;
margin:0;
width:2px;
height:38px;
}
/* ------------------------ */
/* STYLING SUB / DROP DOWN */
/* ------------------------ */
#nav li ul a {
margin:0 20px;
width:auto;
border:0px;
}
#nav li ul li {
height:25px;
width:160px;
background:#2a2a2a;
}
#nav li ul li.space {
height:15px;
margin:0px;
background:#2a2a2a;
}
/* ------------------------ */
/* OTHER */
/* ------------------------ */
#nav li ul {
position: absolute;
width:160px;
left: -999em;
}
#nav li:hover ul {
margin-top:10px;
left: auto;
}
#nav li:hover ul, #nav li.sfhover ul {
left: auto;
}
HTML:
HTML:
<ul id="nav">
<li><a href="#">Home</a></li>
<li class="divider"></li>
<li><a href="#">Who we are</a>
<ul>
<li><a href="#">About</a></li>
<li><a href="#">History</a></li>
<li><a href="#">Mission & Vision</a></li>
<li><a href="#">Where we are</a></li>
<li><a href="#">The Team</a></li>
</ul>
</li>
<li class="divider"></li>
etc.etc.etc.
</ul>
JS:
HTML:
sfHover = function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
Zuletzt bearbeitet: