Frangoo: offsetHeight, clientHeight u.ä. liefern InnerWidth

Hallo,

ich bin etwas irritiert über die Funktion von offsetHeight, clientHeight u.ä. Und ich hoffe, dass mir hier vielleicht jemand einen entscheidenden Tipp geben kann :)

Zum Problem: Eigentlich dachte ich (und es hat auch bisher immer so funktioniert), dass besagte Werte die tatsächliche Höhe des Dokuments liefern, also auch den nicht sichtbaren Bereich.
Ich habe ein Script, dass ein Div im HTML auf die komplette Breite und Höhe des gesamten Dokuments ziehen soll - was es aber nicht tut.
Nach Überprüfen des Scripts habe ich mir das Dokument im DOM-Inspector einmal genauer angesehen und festgestellt, dass, im Gegensatz zu anderen Seiten, auf meinen Seiten unter diesen Parametern nicht der Wert der Gesamthöhe des Dokuments steht, sondern des sichtbaren Fensterausschnittes (also praktisch window.innerWidth)..... Aber warum???

Eine Anmerkung dazu: Die Seite liegt in einem Frameset. Über die FF-Funktionen habe ich mir nur diese Frame-Source-Seite anzeigen lassen, und dann entsprechend per DOM-Inspector die Werte ausgelesen.... meiner Meinung nach hat das keine Auswirkungen auf meine Problematik, aber ich erwähne es der Vollständigkeit halber.

Würde mich über eine Antwort sehr freuen!!

Danke,

Frangoo

  1. Eigentlich dachte ich (und es hat auch bisher immer so funktioniert), dass besagte Werte die tatsächliche Höhe des Dokuments liefern, also auch den nicht sichtbaren Bereich.

    Nein, das tun sie nicht, wenn im Element gescrollt wird. Du suchst eher document.body.scrollHeight, das gibt die Höhe des scrollbaren Bereichs wieder.
    http://www.quirksmode.org/dom/w3c_cssom.html#elementview
    http://www.quirksmode.org/dom/tests/elementdimensions.html

    Mathias

    1. Hi Mathias,

      danke für deine Antwort!!!

      Nein, das tun sie nicht, wenn im Element gescrollt wird. Du suchst eher document.body.scrollHeight, das gibt die Höhe des scrollbaren Bereichs wieder.

      Hat aber leider auch nichts gebracht, ich bekomme immer nur die Höhe des sichtbaren Bereichs des Fensters.

      Frangoo

      1. Hat aber leider auch nichts gebracht, ich bekomme immer nur die Höhe des sichtbaren Bereichs des Fensters.

        Welcher Browser?
        Welcher Dokument-Rendermodus?
        Hast du eine Testseite, die du zeigen kannst?

        Mathias

  2. Yerf!

    Nach Überprüfen des Scripts habe ich mir das Dokument im DOM-Inspector einmal genauer angesehen und festgestellt, dass, im Gegensatz zu anderen Seiten, auf meinen Seiten unter diesen Parametern nicht der Wert der Gesamthöhe des Dokuments steht, sondern des sichtbaren Fensterausschnittes (also praktisch window.innerWidth)..... Aber warum???

    Könnte an "komischen" CSS-Regeln liegen. Hast du evtl. irgendwo ein

    html,body { height:100% }  
    
    

    oder ähnliches drin?

    Gruß,

    Harlequin

    --
    <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
    1. Hi Harlequin,

      Könnte an "komischen" CSS-Regeln liegen. Hast du evtl. irgendwo ein

      html,body { height:100% }

      
      > oder ähnliches drin?  
      >   
        
      danke für deine Antwort, also ich denke daran wird es wohl liegen.  
      Da war tatsächlich ein height:100% beim html und body, nachdem ich das rasugenommen habe, hat es sich deutlich verbessert - obwohl ich immer noch einen kleinen Abstand unten zum Dokument habe :-(.  
        
      Aber in diese Richtung werde ich mal weitersuchen. Thanks !! :)  
        
        
        
      Frangoo
      
      1. Yerf!

        danke für deine Antwort, also ich denke daran wird es wohl liegen.
        Da war tatsächlich ein height:100% beim html und body, nachdem ich das rasugenommen habe, hat es sich deutlich verbessert - obwohl ich immer noch einen kleinen Abstand unten zum Dokument habe :-(.

        Durch height:100% wird der Body auf exakt diese Größe (die sich durch die 100% bei html auf den Viewport bezieht) festgelegt. Bei mehr Inhalt wird dieser über den Body hinausgeschrieben, ohne diesen zu vergrößern (definiertes Verhalten von overflow:visible).

        Die noch vorhandenen Abstände könnten an einem margin/padding liegen.

        Gruß,

        Harlequin

        --
        <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->