Daniel Hamann: offsetWidth,offsetHeight

Hallo da draußen,

kann mir jemand sagen, wie man bei NS 7.0 die zur Darstellung benötigte
Breite und Höhe einer Layer bzw. eines HTML-Node herausbekommt?

Dafür vorgesehen ist der Befehl

document.getElementById(this.divName).offsetWidth

document.getElementById(this.divName).style.width="auto"
document.getElementById(this.divName).style.height="auto"
document.getElementById(this.divName).style.position="absolut"

müssen wohl auf jeden Fall gesetzt sein.

Allerdings ist mir nicht klar, weshalb bei manchen Anwendungen nur 0 oder
undefined zurückgegeben wird.

Weiß jemand ob

  • die betreffende Node zwingend sichtbar sein muss,
  • der HTML-Code zur Ermittlung der Breite direkt in der Node sein muss oder in weitere Nodes geschachtlet sein darf,
  • die betreffende Node aktiv in einen Parent-Kontext gesetzt worden sein muss
  • etc...etc...etc...

Ich kann einfach nirgends eine brauchbare Dokumentation zu diesem Thema finden.
Wäre schon dankbar für einen Hinweis, wo man gute Dokus findet...

Vielen Dank und Grüße

Daniel

  1. Hallo da drinnen :-))

    Ich habe leider kein Netscape 7.0 installiert, aber du mich deucht, dein Problem liegt in einem display:none. Dann allerdings taucht die 0 auch im IE 5.5 und Mozi 0.9.6 auf. Versteckst du dein Element aber mit visibility:hidden, werden offsetWidth und offsetHeight ausgegeben. Das ist eigentlich auch logisch: Denn display:none bedeutet ja "ohne jeden platzhalter unsichtbar", es wird also kein einzelner Pixel verbraucht.

    document.getElementById(this.divName).offsetWidth

    ja!

    document.getElementById(this.divName).style.width="auto"
    document.getElementById(this.divName).style.height="auto"
    document.getElementById(this.divName).style.position="absolut"

    Das muss zumindest bei oben genannte Browsern nicht gesetzt sein, und ich denke, auch bei Netscape 7 ist das nicht der Fall. Denn offsetWidth ist ja eine Eigenschaft des Elements,während style.width ja eine Schicht tiefer geht.

    Liebe Grüße, Uschi