2012-03-08 105 views
0

我不知道爲什麼我的腳本不能正常工作......jQuery的CSS高度

$(document).ready(function() { 

var div_height = $("#content").height(); 
$(".leftSideBar").css("height", div_height); 

var div_height = $("#content").height(); 
$(".rightSideBar").css("height", div_height); 

}); 

正如你可以看到http://www.willruppelglass.com/側邊欄不走一路下來,誰能告訴我爲什麼它不?我對jQuery有點新鮮,我認爲它與文檔就緒功能有關,要詳細瞭解這一點,但如果任何人都可以指出我正確的方向,那就太棒了。

+1

不要忘記,當你設置高度爲CSS屬性,你需要一個測量。 $(「。leftSideBar」)。css(「height」,div_height +「px」); – 2012-03-08 18:38:43

+0

不相關,但請不要在您的網站中使用巨大的圖像,然後使用CSS來使它們看起來更小。瀏覽器仍然需要加載大圖像,它只顯示它很小。也許你現在只是做了填充,我不知道。 – Luke 2012-03-08 18:47:39

+0

此外,在更廣泛的監視器中,頁眉和頁腳不居中,而是向左側漂浮。所以你的懸停菜單不排隊。 – Luke 2012-03-08 18:50:34

回答

2

它看起來像你的身高是關閉按照#content部分中圖像的高度。嘗試在window.load運行的代碼時,所有的頁面上的資產已完成加載時觸發:

$(window).bind('load', function() { 

    //since your running the same function on the elements, 
    //you can select them both at once, 
    //which removes the need for a variable that stores the height 
    $(".leftSideBar, .rightSideBar").css("height", $("#content").height()); 

}); 

我注意到,你的頁面使用web字體;可能是因爲document.ready觸發時,webfont尚未呈現,並且在呈現時,它會使#content元素更高。如果是問題,則綁定到window.load應該有所幫助。

+0

太棒了,謝謝Jasper :) – user979331 2012-03-08 18:46:30

1
  1. 刪除第二var div_height = $("#content").height();
  2. 使用outerHeight()的功能,而不是height()
  3. 則可能需要等到圖像加載,或通過屬性高度指定其高度
+0

This Works Too Thanks Simon – user979331 2012-03-08 18:39:11

0

你使用什麼瀏覽器? Chrome瀏覽器(也可能是所有的webkit)如果沒有高度和寬度屬性,將不會正確計算圖片的高度。嘗試給你的圖像的寬度和高度的屬性,並看看是否有效(Jasper的答案不同的方法)。