Henry: Unterschiedl. Darstellung IE + NS?

Hallo,

ich habe mein Problem bezüglich der unterschiedlichen Darstellung von IE und NS leider immer noch nicht gelöst. Es geht um folgenden Beispiel-Code:
<html>
<head>
<title>Test</title>
<style type="text/css">
.menu
{ position: absolute;
  left: 20px;
  height: 30px;
  width: 80px;
  padding-left: 10px;
  padding-top: 2px;
  border-style: none;
  border-width: thin;
  color: #FFFFFF;
  background: #0000C0;
  layer-background-color: #0000C0; }
</style>
<script>
<!--
  var ns=0, ie=0, oldid="", selcolor="#FF9933";
  var T=20, L=20, H=30, W=80;

function set_bgcolor(x,color)
  {  if (ns) document.layers[x].bgColor=color;
     if (ie) document.all[x].style.background=color; }

function no_select()
  {  if (oldid) {  set_bgcolor(oldid, "#0000C0");
                   oldid="";                      }; }

function set_select(x)
  {  if (oldid != x)
     {  if (oldid) set_bgcolor(oldid, "#0000C0");
        oldid=x;
        set_bgcolor(x, selcolor);                 }; }

function check_mouse(e)
  {  var x, y;
     if (ns) { x=e.pageX; y=e.pageY; };
     if (ie) { x=event.clientX; y=event.clientY; };
     if ((x<=L) (x>L+W) (y<=T) (y>T+H)) no_select()
     else set_select("m1");                                  }

if (document.layers) { ns=1; ie=0; } else { ns=0; ie=1; };
  if (ns) { window.captureEvents(Event.MOUSEMOVE);
            window.onmousemove=check_mouse;        };
  if (ie) document.onmousemove=check_mouse;

//-->
</script>
</head>
<body>
<div id="m1" class="menu" style="top:20px">Testtext</div>
</body>
</html>

Mit dem IE ändert sich, wie gewollt, beim Überfahren der Fläche die Hintergrundfarbe. Mit NS ändert sich dagegen nur die Farbe eines ein paar Pixel breiten Randes, die Farbe der Fläche um den Text bleibt. Außerdem führt padding-top bei beiden Browsern zu unterschiedlichen Textpositionen. Beim NS muß padding-top 2px und beim IE 5px sein, damit der Text in der Mitte erscheint. Ich bin langsam etwas ratlos. Kann mir jemand weiterhelfen?

Gruß Henry

  1. Hi,

    das Problem ist die CSS Angabe für den IE (background-color)! Ohne diese Angabe geht's im NS, eine mögliche Lösung (wahrscheinlich nicht die beste) ist die Hintergrund Eigenschaft der Ebene für den IE beim Laden der Seite (onLoad) zu setzen.
    Über Feedback würde ich mich freuen....

    Gruß Stephan

    1. Hallo Stephan,

      vielen Dank für deinen Tip. Ich habe es ausprobiert und es geht ohne Probleme. Leider hatte ich nirgendwo ein Hinweis in dieser Richtung gefunden! Die Idee mit dem onLoad ist auch ganz gut, gestaltet sich aber wegen der größeren Anzahl der Ebenen etwas aufwendig. Das Problem mit der unterschiedlichen Textpositionierung bei IE und NS werde ich wohl über eine nachträgliche CSS-Anweisung in Javascript lösen, die der IE ignoriert.

      Gruß Henry