positon:relative + absolute - IE macht probleme
Snafu
- css
0 Axel Richter0 Snafu
0 Snafu0 Ashura0 Snafu0 Axel Richter0 Snafu
Hallo,
Ich bastle gerade an einem CSS-Dropdownmenu.
Ich habs geschafft, dass das Menü im Firefox, NN 7.1 und Opera 8 richtig läuft, allerdings macht mir der IE 6 probleme (auf IE5 hab ich verzichtet).
Mac Browser kann ich leider nicht testen (IE Mac wirds wahrscheinlich falsch anzeigen).
Mein Problem ist, dass der IE die absolut positionierte Liste (Level-1 bzw. 2 Submenü) unter den relativ positionierten restlichen Listenelementen der übergeordneten Liste(Hauptmenü bzw Level1-Submenü) anzeigt.
Hier ist eine Beispieldatei mit dem ganzen Code (auch IE6 JS-fix).
http://www.c-gabriel.at/test/index.html
Weiß einer wie mein Problem zu beheben ist?
Bzw. kann mir vl noch wer sagen, ob das Menü mit standardkompatiblen Browsern unter Mac und Linux läuft?
Schon mal danke im Voraus
Hallo,
Mein Problem ist, dass der IE die absolut positionierte Liste (Level-1 bzw. 2 Submenü) unter den relativ positionierten restlichen Listenelementen der übergeordneten Liste(Hauptmenü bzw Level1-Submenü) anzeigt.
Hier ist eine Beispieldatei mit dem ganzen Code (auch IE6 JS-fix).
http://www.c-gabriel.at/test/index.html
Lass die (ul.menu li) zunächst in position:static und nimm sie erst bei hover in position:relative. Mach das im CSS und auch im JavaScript.
CSS:
...
ul.menu li {
padding:3px;
width:134px;
color:inherit;
background-color:#999;
border-top:1px solid #FFF;
border-right:1px solid #FFF;
border-left:1px solid #FFF;
}
ul.menu li:hover {
position:relative;
}
ul.menu li:hover > ul {
display:block;
}
...
JavaScript:
var IE = (window.navigator.systemLanguage && !window.navigator.language)? 1 : 0;
function show(e) {
if(IE) e.style.position = 'relative';
if(IE) e.lastChild.style.display = 'block';
}
function hide(e) {
if(IE) e.style.position = 'static';
if(IE) e.lastChild.style.display = 'none';
}
Ich habe mir erlaubt, Deinen Test auf IE-Browser so abzuwandeln, dass Opera nicht darunter fällt, wenn er sich, wie standardgemäß festgelegt, als IE ausgibt.
Bzw. kann mir vl noch wer sagen, ob das Menü mit standardkompatiblen Browsern unter Mac und Linux läuft?
Nein, kann ich im Moment nicht testen.
viele Grüße
Axel
Danke,
endlich mal einer, der mir versucht zu helfen :)
Ich werds gleich mal ausprobieren (hoffentlich gehts)
Axel Richter, du bist mein Held :D
Is eigentlich eine logische Lösung - hätt ich selber draufkommen können - aber du hast mir wahrscheinlich mehrere Grübel-Tage erspart :)
Mit JS hab ich mich nur beschäftigt, sobald ich es gebraucht hab (à la popups, ...) also danke ich dir nochmal extra für die Verbesserung.
Wäre noch super, ob mir wer sagen könnte, ob das ganze auch unter Mac und Linux läuft.
Mfg Snafu
Hallo Snafu.
Bzw. kann mir vl noch wer sagen, ob das Menü mit standardkompatiblen Browsern unter Mac und Linux läuft?
Konqueror macht keine Probleme.
Einen schönen Montag noch.
Gruß, Ashura
Konqueror macht keine Probleme.
Danke fürs testen.
Hallo,
Konqueror macht keine Probleme.
Danke fürs testen.
Im IE geht's immer noch nicht ;-). Wozu lässt Du die Variante testen, die Du ohnehin nicht verwenden kannst, wenn Du es IE-kompatibel willst?
viele Grüße
Axel
Im IE geht's immer noch nicht ;-). Wozu lässt Du die Variante testen, die Du ohnehin nicht verwenden kannst, wenn Du es IE-kompatibel willst?
Also im IE 6 gehts, dafür wollt ichs auch haben. Ist mir zu umständlich alles noch für den IE 5 kompatibel zu machen aber vl tu ich das noch.
Verwenden tu ichs so und so nicht, ich wollt nur wissen, ob ichs kann :)