Maxx: Netscape 6, Doctype und javascript

Hallo Forum,
folgendes Problem beschäftigt mich.
Ein kleines javascript soll die Höhe einer <div> entsprechend der Höhe einer anderen manipulieren.

[...]
nav=window.document.getElementById("nav1");
main=window.document.getElementById("main");
h=main.offsetHeight;
if(h>nav.offsetHeight) nav.style.height=h;
[...]

Das funktioniert wunderbar im NN6 solange sich die Angabe des Doctypes auf <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> beschränkt.
In dem Moment, in dem ich die URI der DTD hinzufüge "http://www.w3.org/TR/html4/loose.dtd" funktioniert das "nav.style.height=h;" nicht mehr.
Ein alert(h) zeigt mir zwar den Wert an, aber die Höhe wird nicht geändert.

Netscape 6.1, NT4.0, CSS und HTML sind validiert.
IE5.x und Opera zeigen dieses sonderbare Verhalten nicht. (Opera mittels xx.style.pixelHeight)
Liegt der Fehler im HTML, im CSS, im javascript? Ich glaube den Zusammenhang zwischen Doctype und CSS verstanden zu haben.
Aber zwischen Doctype und js? Hat jemand eine Idee?

Danke und Gruß

Jochen

P.S. Das CSS für die Navi sieht folgendermaßen aus:
#nav1 {
background-image:url(../img/navback.gif);
width:24%;
position:absolute;
left:75%;
top:20px;
}

  1. Hallo Maxx!

    Hallo Forum,
    folgendes Problem beschäftigt mich.
    [...]

    Das funktioniert wunderbar im NN6 solange sich die Angabe des Doctypes auf <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> beschränkt.
    In dem Moment, in dem ich die URI der DTD hinzufüge "http://www.w3.org/TR/html4/loose.dtd" funktioniert das "nav.style.height=h;" nicht mehr.

    Ich weiß nicht, ob es dir weiterhilft, aber wir haben kürzlich ein ähnliche Problem mit der URL im Doctype gehabt, zwar nicht bezüglich Javascript, sondern es äußerte sich darin, daß alle Tabellenzeilen mit absurd großen Höhen angezeigt wurden. (waren korrekt definiert und wurden in allen anderen Browsern und Plattformen auch richtig angezeigt)
    nach Löschen der URL im Doctype war alles wieder gut. Da die Doctype-Definition nicht zwingend notwenig ist, haben wir sie dann überall gelöscht.
    Wir vermuten einen Bug.

    Gruß,
    Reni

    1. Hallo Reni,
      vielen Dank für deine Antwort. So richtig bringt mich das leider nicht weiter.

      [... Änderung der Höhe einer <div> ...]

      Das funktioniert wunderbar im NN6 solange sich die Angabe des Doctypes auf <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> beschränkt.
      In dem Moment, in dem ich die URI der DTD hinzufüge "http://www.w3.org/TR/html4/loose.dtd" funktioniert das "nav.style.height=h;" nicht mehr.

      Ich weiß nicht, ob es dir weiterhilft, aber wir haben kürzlich ein ähnliche Problem mit der URL im Doctype gehabt, zwar nicht bezüglich Javascript, sondern es äußerte sich darin, daß alle Tabellenzeilen mit absurd großen Höhen angezeigt wurden. (waren korrekt definiert und wurden in allen anderen Browsern und Plattformen auch richtig angezeigt)
      nach Löschen der URL im Doctype war alles wieder gut. Da die Doctype-Definition nicht zwingend notwenig ist, haben wir sie dann überall gelöscht.
      Wir vermuten einen Bug.

      Die URI der DTD benötige ich für den IE6. Nur dann schaltet dieser in den "standard-compliant-Modus" und nur dann werden die "width:" Angaben gem. CSS2 richtig interpretiert.

      Trotzdem Danke für deine Antwort.

      Gruß
      Jochen

  2. [...]
    if(h>nav.offsetHeight) nav.style.height=h;
    [...]

    Das funktioniert wunderbar im NN6 solange sich die Angabe des Doctypes auf <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> beschränkt.
    In dem Moment, in dem ich die URI der DTD hinzufüge "http://www.w3.org/TR/html4/loose.dtd" funktioniert das "nav.style.height=h;" nicht mehr.

    Ich habe den "Fehler".
    nav.style.height=h; ist natürlich Quatsch! nav.style.height=h+"px"; Und dann funktioniert es auch mit der DTD.
    Wozu so ein bisschen nachdenken nicht immer gut ist ;-)

    Grüße an alle CSS-geschädigten

    Jochen