2012-10-03 16 views
7

Questo è il modo in chrome mostrano la larghezza e l'altezza del div:perché jquery .height() ottiene un risultato diverso su chrome?

enter image description here

che è corretto, infatti, l'altezza è 1466. Ma, se faccio questo:

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

esso stampa 1418. Non ha alcuna spaziatura/margine. Perché? E come posso ripararlo?

+0

Quali altre regole di stile vengono applicate a quell'elemento? Ha bambini particolari quali dimensioni (altezza) possono cambiare dopo il caricamento del loro contenuto? – raina77ow

risposta

8

Questo perché il domready alcune immagini non vengono caricate completamente. Dovresti chiamare l'altezza sul carico della finestra.

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

È possibile anche utilizzare outerHeight:

ottenere la corrente altezza calcolata per il primo elemento nella serie di elementi accoppiati, inclusi padding, bordo e margine opzionalmente. Restituisce una rappresentazione intera (senza "px") del valore o null se chiamata su un insieme vuoto di elementi.

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

Nulla cambia .... – markzzz

+2

Questo mi ha fatto risparmiare molti mal di testa - grazie! – boz

2

Utilizzare outerHeight() per ottenere l'altezza con i paddings. Utilizzare outerHeight(true) per ottenere l'altezza con paddings + margini.

Here's a link to the documentation.

+0

Come ho detto, non ho paddings/margine! Funziona inserendo il codice su $ (window) .load ...: O – markzzz

2

.height() ti porterà l'altezza dell'elemento, .outerHeight() restituirà l'altezza compresa padding, margini e confini.

Problemi correlati