2012-10-03 9 views
7

To jak chrom przedstawiają szerokość i wysokość div:dlaczego jquery .height() uzyskać inny wynik na chrome?

enter image description here

co jest poprawne, w rzeczywistości wysokość jest 1466. Ale, jeśli mogę to zrobić:

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

go drukuje 1418. Nie ma żadnego dopełnienia/marginesu. Czemu? I jak mogę to naprawić?

+0

Jakie inne reguły stylu są stosowane do tego elementu? Czy ma jakieś szczególne dzieci, które wymiary (wysokość) mogą się zmienić po załadowaniu ich zawartości? – raina77ow

Odpowiedz

8

To dlatego, że na domready niektóre zdjęcia nie są ładowane całkowicie. Powinieneś wywołać wysokość na obciążeniu okna.

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

Można również użyć outerHeight:

Pobierz aktualną wysokość obliczoną dla pierwszego elementu w zbiorze elementów dopasowanych oraz dopełnienie, obramowanie i marginesu opcjonalnie. Zwraca liczbę całkowitą (bez "px") reprezentującą wartość lub wartość pustą, jeśli zostanie wywołana na pustym zestawie elementów.

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

Nic się nie zmienia ... – markzzz

+2

To zaoszczędziło mi wielu bólów głowy - dziękuję! – boz

2

Użyj outerHeight(), aby uzyskać wysokość z klockami. Użyj outerHeight(true), aby uzyskać wysokość z paddings + marginesy.

Here's a link to the documentation.

+0

Tak jak powiedziałem, nie mam żadnych paddings/margin! Działa wstawiając kod na $ (okno) .load ...: O – markzzz

2

.height() będzie Ci wysokość elementu, .outerHeight() powróci wysokość łącznie dopełnienie, margines i granic.

Powiązane problemy