2013-03-30 44 views
1

我想讓一個DIV的頂邊距等於另一個元素的高度。使用圖像高度()來設置另一個元素的邊距

我無法在Chrome中使用它。在FF和IE9中似乎很好。

我使用height()來獲取圖像的高度。

我然後從我的另一個DIV

var GalleryImgHeight = $("#container #gallery img").height(); 
$("#content_container").css("margin-top", - GalleryImgHeight); 

<div id="container"> 
<div id="gallery"><img src="images/1.jpg" alt=""></div> 
<div id="content_container">Lorem ipsum dolor sit amet, consectetuer.......</div> 
</div> 

的上邊距減去此值我有一個調整大小功能,這裏面相同的代碼,所以,如果他們調整瀏覽器,它重新計算。

對於Chrome,它只適用於調整大小。我猜測最初的功能是在圖像加載之前獲取高度。

我沒有收到任何錯誤。

我應該嘗試預加載圖像嗎?

下面是完整的代碼:http://troythibodeaux.com/temp/webdev/

我的原因,這是得到一個DIV堆疊在另一個的上面。兩個DIV都相對放置,因爲底部DIV的寬度是100%,所以其尺寸將取決於瀏覽器的大小。告訴我,如果我錯了,但我不能將頂級DIV的位置設置爲絕對,因爲我希望它在瀏覽器中居中。所以我無法真正將「左」屬性設置爲靜態值。

Mabye我採取了錯誤的方法,但很想聽到另一個承擔。

回答

0

大答案由戈丹,但需要更改代碼,使下面的行工作:

var origMarginTop = $("#content_container").css("margin-top"); 

,因爲它返回完整的CSS值即的字符串。 「10px的」。顯然,你不能從10px採取一個純數字,你需要它只是10.(10px-180例如不會工作,10-180會)

得到這個工作我會建議以下幾行(1行補充說,第三行改變):

var marginTopString = origMarginTop.slice(0, -2); 

if (GalleryImgHeight !== 0) { 
$("#content_container").css("margin-top", marginTopString - GalleryImgHeight); 

此修改的代碼工作正常,我。

相關問題