Henry: Eigenartiges Verhalten von NS

Hallo Leute,

wenn ich nachfolgenden Code im IE ausführe, funktioniert er, wie von mir geplant. Bei der Verwendung von NS 4.7x ergibt sich folgendes Verhalten:

  • Beim Aufruf erscheint korrekt die blaue Fläche, allerdings etwas höher als mit height definiert (border-weidth=thin?). Verändere ich nun aber die Größe des gesamten NS-Fensters, so wird die Fläche an die Textlänge angepaßt und die paddings verschwinden.
  • Beim Überfahren der Fläche wird nur ein Rand rot (beim IE gesamte Fläche), nach einer Größenänderung des gesamten NS-Fensters aber die gesamte Fläche.
  • Erfolgt nach einer Veränderung der Fenstergröße ein Reload, ist wieder die gesamte Rechteckfläche blau, wobei aber jetzt beim Überfahren wieder nur der Rand rot wird.

Hier der Code:

<html>
<head>
<title>Test</title>
<style type="text/css">
.menu
{ position: absolute;
  left: 10;
  top: 10;
  height: 30;
  width: 80;
  padding-left: 10;
  padding-top: 5;
  border-style:none;
  border-width:thin;
  color: #FFFFFF;
  background: #0000C0;
  layer-background-color: #0000C0; }
</style>
<script>
<!--
  var ns=0, ie=0; oldid="";
  var T=10, L=10; 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 set_select(x)
  {  if (oldid != x)
     {  if (oldid) set_bgcolor(oldid, "#0000C0");
        oldid=x;
        set_bgcolor(x, "red");            }; }

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<=W) && (y>T) && (y<=T+H)) set_select("m1")
     else if (oldid) {  set_bgcolor(oldid, "#0000C0");
                        oldid="";                      };       }

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">Test</div>
</body>
</html>

Findet jemand einen Fehler?

Gruß
Henry

  1. Findet jemand einen Fehler?

    Vermutlich ist Dein Problem auch eine Folge des NN 4.x-Resize Bugs (da es ja nach Reload funktioniert). Vielleicht hilft Dir mein Tip 35 unter http://www.styleassistant.de Tips & Tricks weiter.
    BTW: Zahlenwerte != 0 verlangen in CSS eine Einheit, also z. B. height: 30px; usw.
    Um DIVs unter Netscape 4.x auf die gewuenschte Groesse zu bringen, helfen ggf. transparente (Hintergrund-)Bilder.

    MfG, Thomas

  2. Hallo,

    danke erst einmal. Allerdings ist mir immer noch unklar, warum mit dem IE, wie erwartet, die gesamte Hintergrundfläche und mit NS nur ein Rahmen mit einer Breite von 4? Pixeln rot wird.

    Gruß
    Henry

    1. Allerdings ist mir immer noch unklar, warum mit dem IE, wie erwartet, die gesamte Hintergrundfläche und mit NS nur ein Rahmen mit einer Breite von 4? Pixeln rot wird.

      Schau mal hier http://www.css.nu/pointers/bugs.html nach, ob es einen "Workaround" fuer Dein Problem gibt. Dort nachzuschauen ist immer zu empfehlen, bevor man an sich selbst zweifelt ... ;-)

      MfG, Thomas

  3. Hallo,

    habe mal kurz ein bisschen probiert.
    Wenn Du das background: #0000C0; im Style rausnimmst, kommt im NS der Wechsel wie gewollt. Bei IE allerdings erst, wenn du mit der Maus über den jetzt ja unsichtbaren DIV gehst.
    Versuch doch, die erste initiierung für IE dynamisch zu machen.

    Vielleicht hilft dir der Ansatz.

    Viele grüße

    Harald Legler