2010-04-08 221 views
1

我有兩個div雙胞胎元素(即它們的尺寸和內容相同)。我想將這些div移到另一個div上,以便它們的角落處於完全相同的座標。我嘗試做的是:將另一個div移動另一個

var offset = $('div#placeholder').offset(); 
$('div#overlay').css('position', 'absolute').css('left', offset.left + 'px').css('top', offset.top + 'px') 

- 但這會導致疊加是完全(或幾乎完全,以亞像素精度考慮)16px的佔位符(以下,即overlay_top = placeholder_top + 16像素)以下。

我知道,偏移()給出相對位置的文件,並位置:相對於身體元素絕對套位置,但對於體偏移補償()沒有太大幫助(我得到8像素偏移,等於利潤):

offset.top -= $('body').offset().top; 
offset.left -= $('body').offset().left; 

此外,補償利潤(如果它們不同的是偏移()沒有幫助,因爲它們被設置爲8px)。

有人知道我在做什麼錯嗎?

更新:看看here - 我在FireFox 3.6.3和Opera 10.10中得到了相同的結果。

+1

你能演示一個演示嗎? – SLaks 2010-04-08 11:56:22

+0

不知道這是否是你想要的,但嘗試添加一些Z-index:1;(2,3等)屬性到您的CSS .. – Kyle 2010-04-08 12:01:02

回答

1

我懷疑你有一些基於樣式表中的類/名稱/元素類型應用的CSS規則。我建議你嘗試通過javascript將元素上的margin/padding設置爲0。您可能還想使用WebDeveloper或FireBug,並在重新定位後檢查元素上的計算樣式,以查看正在應用哪些樣式以及從哪裏開始。

+0

我創建空白頁,仍然設法重現該問題。但是當我切換到定位div的子元素(即輸入)時,一切都開始正常工作。我仍然不知道爲什麼,但我沒有時間進一步調查。 – 2010-04-11 21:19:26