2010-05-16 52 views
11

我使用.position來查找元素相對於父級的偏移量,但它似乎返回的值是某些父級的偏移量祖先樹。JQuery - .position不會返回相對於父級的偏移

我有一個按鈕,它包裹着一個div,它是該div的唯一元素。 div正確地浮動。 .position返回值爲{left:780, top:370},當真實值應該在{left:200, top:0}左右。

我使用jQuery 1.4

回答

19

如果我是正確的,我認爲這是一個CSS問題,不一定是jQuery的一個.. 我的理解是,CSS「位置」的默認值屬性靜態(不是絕對的,相對的),並且相對於未設置爲靜態的第一個祖先計算定位。

如果元素沒有非靜態位置的祖先,元素將相對於html塊定位。

如果你想定位一個相對於包裝div的div,可以根據需要將包裝div的位置屬性設置爲靜態(相對,絕對)之外的其他屬性。

這裏有一個簡單的例子,說明了這一點..

<html> 
    <style type="text/css"> 
    .divOuter { border:1px solid Green; width:350px; height:50px; padding:2px; margin-left:80px; } 
    .divInner{border:1px solid Blue; width:200px; height:50px; padding:2px; position:absolute; left:100px;} 
</style> 
<body> 
<div class="divOuter"> 
    <div class="divInner"> 
    positioned relative to html block 
    </div> 
    </div> 
     <div class="divOuter" style="position:relative;"> 
    <div class="divInner"> 
    positioned relative to parent div 
    </div> 
    </div> 
    </body> 
    </html> 
+1

謝謝,就是這樣,我剛纔設置的包裝DIV是位置:相對的,我的問題是固定的:) – Kyle 2010-05-16 05:10:20

+0

沒錯,上@markt點。我可以證實這確實是一個CSS問題,這個解決方案就像一個魅力。 – Ben 2014-01-28 09:33:10

相關問題