2010-05-16 14 views
11

Sto usando .position per trovare l'offset di dove l'elemento è relativo al genitore, tuttavia sembra che stia restituendo un valore che è l'offset di qualche genitore su l'albero degli antenati.JQuery - .position non restituisce l'offset relativo al genitore

Ho un pulsante, ed è avvolto con un div ed è l'unico elemento di quel div. Il div è flottato a destra. .position restituisce un valore come {left:780, top:370}, quando il valore vero dovrebbe essere intorno a {left:200, top:0}.

sto usando jQuery 1.4

risposta

19

Se ho ragione, credo che questo è un problema di CSS, non necessariamente una jQuery uno .. la mia comprensione è che il valore di default della "posizione" CSS proprietà è statico (non assoluto, relativo) e il posizionamento viene calcolato rispetto al primo antenato che non è impostato su statico.

Se l'elemento non ha antenato con posizione non statica, l'elemento sarà posizionato rispetto al blocco html.

Se si desidera posizionare un div relativo a un div wrapper, provare a impostare la proprietà della posizione div del wrapper su qualcosa di diverso da statico (relativo, assoluto), in base alle proprie esigenze.

Ecco un semplice esempio che illustra questo ..

<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

Grazie, che è stato, ho appena impostato il div involucro di essere position: relative e il mio problema è stato risolto :) – Kyle

+0

Yep, posto sul @markt . Posso confermare che questo è davvero un problema CSS e questa soluzione funziona come un fascino. – Ben

Problemi correlati