2012-08-29 13 views
8

mam tej struktury HTML:jQuery: błędne wartości, gdy próbuje uzyskać div wysokość

<div class=container> 
    <div class=content> 
      Content goes here 
    </div> 
</div> 

Czytam na wysokość div.content używając:

var height = $("div.content").height(); 

powróci 17 (w mojej walizce)

działa jak dotąd ładnie (porównując go z rzeczywistą wysokością za pomocą firebuga). Problem polega na tym, że przy wypełnianiu ciągłego tekstu> 2 linie otrzymuję nieprawidłową wartość. 2 linie dadzą mi 34 (poprawne), ale 3 linie również zwrócą 34, chociaż rzeczywista wysokość to 51. Oczywiście przy wypełnianiu dużej ilości tekstu wynikowa wartość jest zła. wydaje mi się jak błąd jquery .. jakieś pomysły na obejście tego problemu? dzięki

PS: działa idealnie w IE, Firefox zwraca błędną wartość ..

+0

możliwe duplikat: http://stackoverflow.com/questions/11665657/how-to-calculate-elements-width-and-height-with-their-padding-margin-values-u –

Odpowiedz

30

Zastosowanie $("div.content").outerHeight(); zamiast.

Jeśli dodasz -true w nawiasie, jeśli chcesz uwzględnić również wszystkie marginesy &. $('div.content').outerHeight(true);

także wysokość cross-browser mogą się różnić, jeśli nie masz bardzo dobry CSS Przywraca, lub szukasz w starszej wersji przeglądarki (IE6/7), ale z dobrym zresetować ich różnice będą bardzo malutkie .

jsFiddle Demo

+0

ja Właśnie dowiedziałem się, że działa w IE, ale NIE w firefox – Fuxi

+0

występuje również z próbką jsFiddle .. – Fuxi

+1

Co "występuje"? Mam takie same wyniki w Chrome/Firefox i IE. –