dbenzhuser: Problem mit position:absolute in Mozilla!?!

Beitrag lesen

Moin zusammen!

Irgendwie bin ich mit Positionsangaben noch nie so richtig klar gekommen...

Also ich hab auf dieser Seite hier:
http://www.b-anhaenger.de/thirdgen/universal.php?w2=ueberuns&menue=false
unten eine kleine Tabelle, hinter der sich ein Bild verstecken soll. Wenn ich nun mit der Maus draufgehe fährt das Bild unter der Tabelle hervor.

Sowei so gut.

Aaaber: Mozilla (1.4) richtet den sich verschiebenden Bereich nicht wie geplant am umgebenden div aus (welches, so hab ichs verstanden eigentlich das parent-Element sein müsste), sondern am body.
Das ist etwas dumm. So kann die Seite natürlich nicht bleiben.
Opera machts wie Mozilla.

Firebird (0.6.1) und IE (6) machen es genau wie geplant.

Besonders der Unterschied zwischen Firebird und Mozilla wundert mich, ich dachte die zwei wären sich codebedingt einig, was die Darstellung angeht.

Wer sichs ohne Bilder schwer vorstellen kann: hier die "alte" Seite:
http://www.b-anhaenger.de/ueberuns.htm

Frage:
Mach ich im Code was falsch, oder ist Mozilla einfach zu blöd?

Der Bereich:

<div style="float:right; margin-left:0px; z-index:2; position:relative; top:0px; left:0px" onMouseover="show_hidden_pre()" onMouseout="hide_hidden_pre()">
...
<span id="hidden" style="position:absolute; z-index:1; top:0px; left:0px"><img src="ueberun3.gif" width="313" height="373"></span>
</div>

und das Script:

<script language="JavaScript" type="text/javascript">
<!--

function show_hidden_pre()
{
   show_abbruch = false;
   hide_abbruch = true;
   show_hidden()
}

function show_hidden()
{
   if(show_abbruch == false)
   {
      var px_index = document.getElementById("hidden").style.left.indexOf("p");
      var px_wert = document.getElementById("hidden").style.left.slice(0,px_index);
      if(px_wert >= -299)
      {
         var new_px_wert = px_wert - 10;
         document.getElementById("hidden").style.left = new_px_wert + "px";
         window.setTimeout("show_hidden()",100);
      }
   }
}

function hide_hidden_pre()
{
   hide_abbruch = false;
   show_abbruch = true;
   hide_hidden()
}

function hide_hidden()
{
   if(hide_abbruch == false)
   {
      var px_index = document.getElementById("hidden").style.left.indexOf("p");
      var px_wert = document.getElementById("hidden").style.left.slice(0,px_index);
      if(px_wert <= -4)
      {
         var new_px_wert = px_wert - (-10);
         document.getElementById("hidden").style.left = new_px_wert + "px";
         window.setTimeout("hide_hidden()",100);
      }
   }
}
//-->
</script>

Das Script wird natürlich noch mit ein paar abfragen garniert, erst mal soll aber die Anzeige stimmen. (ob getElementById vorhanden etc.)
Wer zum Script noch Verbesserungsvorschläge hat, da bin ich offen für allen, JavaScript ist leider nicht so mein Fall.

Der IE zeigt übrigenz das gleiche Verhalten, wenn ich im äußeren div die positionsangabe rausnehme.

Ich kann natürlich einfach wie bisher einfach ein paar Browser aussortieren, aber irgendwie befriedigt mich das nicht.

Bitte zeigt mir meinen Fehler, oder zumindst einen Tipp ;)