2015-10-11 17 views
8

Sono a conoscenza del trucco position:relative e position:absolute per posizionare un div relativo al suo genitore. Ma cosa succede se il div non è suo genitore e io voglio posizionarlo rispetto a quello? Sto cercando di implementare qualcosa in questo senso.Posizionare un div relativo a un altro div che non è il suo genitore usando CSS

Sono anche a conoscenza di position:fixed per correggere un div ma sto costruendo un sito Web reattivo e vorrei evitarlo. Ho trovato una domanda qui che menziona usando jQuery per farlo: How to position one element relative to another with jQuery? jQuery è l'unico modo per farlo? Può essere fatto usando anche i CSS?

Ho alzato un violino qui: http://jsfiddle.net/19bdpgsf/. Nel violino, sto cercando di posizionare l'elemento child2 relativo allo notparentdiv proprio come è stato posizionato rispetto al div parent. È possibile utilizzare solo css?

Grazie.

+0

che DIV si desidera posizionare e dove – imGaurav

+0

div child2 con res pect al notparentdiv proprio come è attualmente posizionato rispetto al genitore nel violino. L'ho menzionato nella domanda. – Akhoy

+0

http://jsfiddle.net/19bdpgsf/1/ qualcosa del genere? – imGaurav

risposta

0

È possibile utilizzare il posizionamento assoluto (relativo all'intero corpo della pagina), ma a parte questo non credo ci sia un altro modo rispetto a jQuery.

+0

Ma nel mio esempio, posizione: relativo è già applicato al div padre. Ignorerà semplicemente la posizione del corpo: relativo. – Akhoy

0

Un altro modo se non volete usare posizioni css usano compensate jQuery, come di seguito per posizionare voi div

var nonparent = $('.notParent'); 
 
var position = nonparent.offset(); 
 
$('.child1').offset({ 
 
    top: position.top, 
 
    left: position.left 
 
});
.notParent { 
 
    background-color: red; 
 
    padding: 20px; 
 
} 
 
.child2 { 
 
    background-color: yellow; 
 
} 
 
.child1 { 
 
    background-color: green; 
 
} 
 
.parent { 
 
    background-color: purple; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="notParent"> 
 
    not parent div 
 
</div> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<div class="parent"> 
 
    parent 
 
    <div class="child1">child1</div> 
 
    <div class="child2"> 
 
    child2 
 
    </div> 
 
</div>

È possibile posizionare un div all'interno di un altro div che non è genitore con posizioni relative assoluti sotto

.notParent { 
 
    background-color: red; 
 
    position: relative; 
 
} 
 
.child2 { 
 
    background-color: yellow; 
 
    position: absolute; 
 
    top: 10px; 
 
} 
 
.child1 { 
 
    background-color: green; 
 
    top: 30px; 
 
} 
 
.parent { 
 
    background-color: purple; 
 
}
<div class="notParent"> 
 
    not parent div 
 
</div> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<br/> 
 
<div class="parent"> 
 
    parent 
 
    <div class="child1">child1</div> 
 
    <div class="child2"> 
 
    child2 
 
    </div> 
 
</div>

+0

Non così. Hai appena rimosso la posizione: relativa già esistente nel genitore div. Non lo voglio – Akhoy

+0

ora è relativo al div nonParent, non è bello? – imGaurav

+0

No :). Cosa succede se ho altri div relativi a quel genitore div? Infastidirà gli stili. – Akhoy