2012-10-03 17 views
7

Esta es la forma en cromado de la anchura y la altura de la div:por qué jquery .height() obtiene un resultado diferente en Chrome?

enter image description here

lo cual es correcto, de hecho, la altura es de 1466. Sin embargo, si hago esto:

$(document).ready(function() { 
    console.log($('#container-altezza-fisso').height()); 
}); 

se imprime 1418. No tiene ningún margen/margen. ¿Por qué? ¿Y cómo puedo solucionarlo?

+0

¿Qué otras reglas de estilo se aplican a ese elemento? ¿Tiene algún niño en particular qué dimensiones (altura) pueden cambiar después de que se carguen sus contenidos? – raina77ow

Respuesta

8

Eso es porque en domready algunas imágenes no se cargan completamente. Debe llamar la altura en la carga de la ventana.

$(window).load(function(){ 
    console.log($('#container-altezza-fisso').height()); 
}) 

También puede utilizar outerHeight:

obtener la altura calculada actual para el primer elemento en el conjunto de elementos emparejados, incluyendo relleno, borde y margen opcionalmente. Devuelve un entero (sin "px") representación del valor o nulo si se invoca en un conjunto vacío de elementos.

console.log($('#container-altezza-fisso').outerHeight()); 
+0

Nada cambia ... – markzzz

+2

Esto me ha ahorrado muchos dolores de cabeza, ¡gracias! – boz

2

Usa outerHeight() para obtener la altura con los rellenos. Use outerHeight(true) para obtener la altura con paddings + márgenes.

Here's a link to the documentation.

+0

Como dije, ¡no tengo almohadillas/margen! Funciona poniendo el código en $ (ventana) .load ...: O – markzzz

2

.height() le conseguirá la altura del elemento, .outerHeight() volverá la altura incluido el relleno, márgenes y fronteras.

Cuestiones relacionadas