En el dominio de JavaScript: ¿cuál es la diferencia entre offsetHeight y clientHeight de un elemento?
javascript
Steve
fuente
fuente

Respuestas:
altura del cliente :
offsetHeight :
Entonces,
offsetHeightincluye barra de desplazamiento y borde,clientHeightno.fuente
clientSizedisponible (después de todo, es la ventanaoffsetHeightgráfica ), pero ¿necesita calcularlo después de volver a fluir todo el documento?La respuesta de Oded es la teoría. Pero la teoría y la realidad no siempre son las mismas, al menos no para los elementos <BODY> o <HTML> que pueden ser importantes para las operaciones de desplazamiento en javascript.
Microsoft tiene una buena imagen en el MSDN :
Si tiene una página HTML que muestra una barra de desplazamiento vertical, uno esperaría que el elemento <BODY> o <HTML> tenga un geater ScrollHeight que OffsetHeight como muestra esta imagen. Esto es cierto para todas las versiones anteriores de Internet Explorer.
Pero no es cierto para Internet Explorer 11 y no para Firefox 36. Al menos en estos navegadores, OffsetHeight es casi lo mismo que ScrollHeight, lo cual es incorrecto.
Y aunque OffsetHeight puede estar equivocado, ClientHeight siempre es correcto.
Pruebe el siguiente código en diferentes navegadores y verá:
Mientras que Internet Explorer anterior se muestra correctamente:
El resultado de Firefox e Internet Explorer 11 es:
lo que muestra claramente que offsetHeight está mal aquí. OffsetHeight y ClientHeight deberían diferir solo unos pocos píxeles o ser iguales.
Tenga en cuenta que ClientHeight y OffsetHeight también pueden diferir extremadamente para elementos que no son visibles como, por ejemplo, un <FORM> donde OffsetHeight puede ser el tamaño real del FORMULARIO mientras que ClientHeight puede ser cero.
fuente