Antworten:
Gibt die Höhe des sichtbaren Bereichs für ein Objekt in Pixel zurück. Der Wert enthält die Höhe mit dem Auffüllen, jedoch nicht die Bildlaufleiste, den Rand und den Rand.
Gibt die Höhe des sichtbaren Bereichs für ein Objekt in Pixel zurück. Der Wert enthält die Höhe mit dem Abstand, der Bildlaufleiste und dem Rand, jedoch nicht den Rand.
So offsetHeightenthält Scrollbar und Grenze clientHeightnicht.
clientSizesofort verfügbare verfügt (schließlich ist es das Ansichtsfenster), aber offsetHeightnach dem erneuten Fließen des gesamten Dokuments rechnen muss?
Die Antwort von Oded ist die Theorie. Die Theorie und die Realität sind jedoch nicht immer gleich, zumindest nicht für die Elemente <BODY> oder <HTML>, die für Bildlaufvorgänge in Javascript wichtig sein können.
Microsoft hat ein schönes Bild im MSDN :

Wenn Sie eine HTML-Seite haben, die eine vertikale Bildlaufleiste zeigt, würde man erwarten, dass entweder das <BODY> - oder das <HTML> -Element einen ScrollHeight-Geater als OffsetHeight hat, wie dieses Bild zeigt. Dies gilt für alle älteren Versionen von Internet Explorer.
Dies gilt jedoch nicht für Internet Explorer 11 und nicht für Firefox 36. Zumindest in diesen Browsern ist OffsetHeight fast identisch mit ScrollHeight, was falsch ist.
Und während OffsetHeight möglicherweise falsch ist, ist ClientHeight immer korrekt.
Probieren Sie den folgenden Code in verschiedenen Browsern aus und Sie werden sehen:
<!DOCTYPE html>
<html>
<body>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<script>
document.write("Body off: " + document.body.offsetHeight
+ "<br>Body cli: " + document.body.clientHeight
+ "<br>Html off: " + document.body.parentElement.offsetHeight
+ "<br>Html cli: " + document.body.parentElement.clientHeight);
</script>
</body>
</html>
Während älterer Internet Explorer korrekt anzeigt:
Body off: 1197
Body cli: 1197
Html off: 878
Html cli: 874
Die Ausgabe von Firefox und Internet Explorer 11 lautet:
Body off: 1260
Body cli: 1260
Html off: 1276 // this is completely wrong
Html cli: 889
was deutlich zeigt, dass offsetHeight hier falsch ist. OffsetHeight und ClientHeight sollten sich nur um wenige Pixel unterscheiden oder gleich sein.
Bitte beachten Sie, dass sich ClientHeight und OffsetHeight auch für Elemente, die nicht sichtbar sind, wie z. B. eine <FORM>, in der OffsetHeight die tatsächliche Größe des FORMULARS sein kann, während ClientHeight möglicherweise Null ist, erheblich unterscheiden können.