2009-04-30 20 views
16

Burada, tüm 'lerin toplam yüksekliği 900 pikseldir, ancak jQuery işlevi, vücudun yüksekliğini 577 piksel olarak döndürür. (CSS gövdesini çıkarırsam çalışır).Gövde elemanının yüksekliğini alma

Bu sorun için bir çözüm var mı?

$j(function() { 
    alert($j("body").height()); 
}) 

html, body { 
    height:100%; 
} 

<div style="height:200px">header</div> 
<div style="height:500px">content</div> 
<div style="height:200px">footer</div> 

cevap

26

Seti

html { height: 100%; } 
body { min-height: 100%; } 

yerine height: 100%.

Sonuç jQuery ifadesi doğrudur, çünkü gövdenin yüksekliğini% 100 olarak ayarlamışsınızdır ve bu muhtemelen görünümün yüksekliğidir. Bu üç DIV bir taşmaya neden oluyordu, çünkü BODY öğesinde onlar için yeterli alan yoktu. Ne demek istediğimi görmek için BODY etiketine bir kenarlık ayarlayın ve kenarlığın nerede bittiğini kontrol edin.

+2

+1 tam olarak ne düşündüğümü düşünüyordum – jonsidnell

+0

güzel açıklama Mr.Rafael teşekkür ederim! –

+0

Hoşgeldiniz, John – Rafael

0

Dönen vücut boyunun görünür yükseklik olduğuna inanıyorum. Toplam sayfa yüksekliğine ihtiyacınız varsa, div etiketlerinizi içeren bir div içine sarın ve yüksekliğini elde edin.

36

Basitçe

$(document).height() // - $('body').offset().top 

ve/veya

$(window).height() 

yerine $('body').height();

+0

bu da bir tane güzel BayOderWat, ama gerçek boyuttan 8px fazladan alıyorum ($ (document) .height() kullanarak). –

+3

Bu 8 piksel "daha fazla" doğru. Bunlar belgenin kenarlarıdır. Ya kullanabilirsiniz: vücut {yükseklik:% 100; margin: 0} veya offset'i $ (document) .height() - $ ("body") kullanarak çıkarırsınız offset(). top – OderWat

+3

$ ("body"). offset() .üsteki eşit kenar boşlukları için çalışır Ancak alt kenar boşluğu özel olarak belirlenmişse işe yaramaz. Ayrıca, $ ("body") denedim css ("margin-bottom") ama bu birim ile döner ve her zaman pikselde olmayabilir. "Daha fazlasını" bulmak için başka yollar var mı? –

2

$ (belge) .height() hileye neden olabilir kullanıp dahil toplam yüksekliği sağlar Sadece kaydırma ile görülebilen alan.

0

Biz

$window[0].document.body.clientHeight 

IE özgü kullanmaktan kaçınmak için çalışıyor Ve aşağıdaki jQuery sürekli aynı değeri vermez konusunda bulundu ama sonunda bizim için çalıştı ve muhafaza eden sayfa yükleme senaryosunda bir noktada yapar edildi çapraz tarayıcı desteği:

$(document).height() 
+0

Kod bloğu oluşturmak için 4 boşluk girmeniz gerekiyor, her birine kısa bir tane yazdınız. –

İlgili konular