Gunnar: offsetWidth & offsetHeight / clientWidth & clientHeight

Hallo.

Möchte mich bei Thomas und Christian für die kurzen klaren Antworten vom Vortag bezüglich scrollLeft & scrollTop bedanken - muss aber trozdem leider nochmal nachlegen.

-----

scrollLeft & scrollTop entspricht

window.pageXOffset
window.pageYOffset

im alten Netscape sowie im aktuellen Netscape / Mozilla / Opera Browser ! OK.

Frage:
Bin ich mit scrollLeft & scrollTop auch noch bei den neuen IE-Versionen "up to date" ?

-----

body.clientWidth & body.clientHeight entspricht

window.innerWidth
window.innerHeight

im alten Netscape sowie im aktuellen Netscape / Mozilla ! OK.

Frage:
Zu "clientWidth & clientHeight" erhalte ich in SelfHtml V8 leider keine Treffer. Gibts dafür einen Grund ?

Bin ich mit body.clientWidth & body.clientHeight auch noch bei den neuen IE-Versionen "up to date" ?
Wie verhält es sich da mit Opera ?

-----

Mit

offsetWidth
offsetHeight

habe ich bisher im IE die Breite / Höhe eines DIV-Bereiches ermittelt. Das funktioniert merkwürdigerweise auch im Netscape 6, obwohl das lt. Nachschlagewerk XYZ nicht sein kann.
Was ist hier das Richtige, um in allen aktuellen Browsern "up to date" zu sein ?

PS.
Ich war jahrelang Weltmeister im "abwärtskompatibel programmieren". Es rächt sich grausam !
Ich kenn mich nicht mehr aus.

Gute Nacht && Gruss Gunnar

  1. Hi,

    Frage:
    Bin ich mit scrollLeft & scrollTop auch noch bei den neuen IE-Versionen "up to date" ?

    Ja. Geht auch im IE 6. Wieso auch nicht!

    body.clientWidth & body.clientHeight entspricht

    window.innerWidth
    window.innerHeight

    im alten Netscape sowie im aktuellen Netscape / Mozilla ! OK.

    Auch neuere Browser kennen document.body.clientWidth. Es ist insofern besser, als das es die Breite OHNE die Breite der Scrollbar ist.

    Frage:
    Zu "clientWidth & clientHeight" erhalte ich in SelfHtml V8 leider keine Treffer. Gibts dafür einen Grund ?

    SelfHTML ist etwas veraltet, meiner Meinung nach. Das was da bezgl. JavaScript und DOM steht ist meiner Einschätzung nach nur ca. ein Drittel von dem was es wirklich alles gibt.

    Bin ich mit body.clientWidth & body.clientHeight auch noch bei den neuen IE-Versionen "up to date" ?
    Wie verhält es sich da mit Opera ?

    Na klaro! Opera 6 und 7 kennen es auch. Opera 5 nicht. Aber Opera speichert in window.innerWidth im gegensatz zu netscape und Mozilla  die Breite OHNE Scrollbarbreite.

    Mit

    offsetWidth
    offsetHeight

    habe ich bisher im IE die Breite / Höhe eines DIV-Bereiches ermittelt. Das funktioniert merkwürdigerweise auch im Netscape 6, obwohl das lt. Nachschlagewerk XYZ nicht sein kann.

    Wieso merkwürdigerweise? Und was fürn Nachschlagewerk XYZ??? Ja, es funktioniert. Es gibt dort auch gar keine andere Möglichkeiten.

    offsetWidth, clientWidth und scrollHeight kennen die meisten Browser (Netscape 6+, Opera 6+, IE 4+, und ich glaube sogar Konqueror). Es ist zwar kein richtiger Standard, aber irgendwie so ein quasi standard.

    Was ist hier das Richtige, um in allen aktuellen Browsern "up to date" zu sein ?

    offsetWidth, clientWidth, scrollWidth

    scrollWidth entspricht übrigend document.width in Netscape 4. also die tatsächliche Breite eines Elementes INKL. nicht sichtbaren Teil (da weg gescrollt)

    unterschied zwischen offsetWidth und clientWidth:
    http://msdn.microsoft.com/workshop/samples/author/dhtml/refs/offsetWidth.htm

    PS.
    Ich war jahrelang Weltmeister im "abwärtskompatibel programmieren". Es rächt sich grausam !
    Ich kenn mich nicht mehr aus.

    Irgendwie macht Crossbrowser-Programmieren voll Spaß!

    Noch was zu IE 6:
    Jenachdem was für einen Doctype du hast, so speichert IE 6 den Wert für die innere Breite entweder in document.body.clientWidth oder document.documentElement.clientWidh!

    Gute Nacht,
    Scooter

    1. Donnerwetter, was für eine Antwort um diese Uhrzeit .... tausend Dank !

      Noch zu offsetWidth / offsetHeight:

      Habe z.B. hier nachgeschaut:

      http://selfhtml.teamone.de/javascript/objekte/all.htm#offset_width

      • offsetWidth / offsetHeight sind demnach IE-spezifisch

      Noch was zu IE 6:
      Jenachdem was für einen Doctype du hast, so speichert IE 6 den >>Wert für die innere Breite entweder in document.body.clientWidth >>oder document.documentElement.clientWidh!

      Ich habe diesen Doctype:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

      Was muss ich jetzt richtig machen, damit ich nichts falsch mache ?

      Ach, ich geh einfach ins Bett jetzt, wenigstens da ist alles wie immer ... ;-)

      Wie gesagt, tausend Dank für die tolle und schnelle Antwort

      Gruss Gunnar

      1. Donnerwetter, was für eine Antwort um diese Uhrzeit .... tausend Dank !

        Noch zu offsetWidth / offsetHeight:

        Habe z.B. hier nachgeschaut:

        http://selfhtml.teamone.de/javascript/objekte/all.htm#offset_width

        • offsetWidth / offsetHeight sind demnach IE-spezifisch

        sie waren es. 1997 als nur der IE 4 es unterstützte. Diese Eigenschaften erwiesen sich als gut, und um nicht noch mehr Verwirrung zu machen, haben alle Browser die ich kenne diese Eigenschaften, ähnlich wie einige andere damals IE-spezifischen Sachen übernommen. Wie gesagt, es scheint ein Quasi-Standard inzwischen zu sein.

        Noch was zu IE 6:
        Jenachdem was für einen Doctype du hast, so speichert IE 6 den >>Wert für die innere Breite entweder in document.body.clientWidth >>oder document.documentElement.clientWidh!

        Ich habe diesen Doctype:

        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

        Was muss ich jetzt richtig machen, damit ich nichts falsch mache ?

        document.body.clientWidth

        Bei XHTML oder Strict musst du document.documentElement.clientWidth nehmen.

        Ach, ich geh einfach ins Bett jetzt, wenigstens da ist alles wie immer ... ;-)

        Genau ich jetzt auch!

        Wie gesagt, tausend Dank für die tolle und schnelle Antwort

        NP!

        Scooter

  2. Hallo,

    Frage:
    Zu "clientWidth & clientHeight" erhalte ich in SelfHtml V8 leider keine Treffer. Gibts dafür einen Grund ?

    Bin ich mit body.clientWidth & body.clientHeight auch noch bei den neuen IE-Versionen "up to date" ?
    Wie verhält es sich da mit Opera ?

    Unter http://www.styleassistant.de/tips/screen.htm sind die wichtigsten Fenster-Eigenschaften zum Testen versammelt.

    MfG, Thomas