Snafu: positon:relative + absolute - IE macht probleme

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

  1. 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

    1. Danke,
      endlich mal einer, der mir versucht zu helfen :)
      Ich werds gleich mal ausprobieren (hoffentlich gehts)

  2. 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

  3. 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

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
    1. Konqueror macht keine Probleme.

      Danke fürs testen.

      1. 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

        1. 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 :)