2015-10-11 19 views
8

Ich bin mir der position:relative und position:absolute Trick zu positionieren, ein div relativ zu seinem Elternteil zu positionieren. Aber was, wenn das Div nicht sein Elternteil ist und ich es relativ dazu positionieren möchte? Ich versuche etwas in diese Richtung zu implementieren.Positionieren Sie ein div relativ zu einem anderen div, das nicht sein Elternteil ist, mit CSS

Ich bin auch bewusst, position:fixed zu einem div zu beheben, aber ich baue eine responsive Website, und ich möchte das vermeiden. Ich habe hier eine Frage gefunden, die erwähnt, jQuery zu verwenden: How to position one element relative to another with jQuery? Ist jQuery der einzige Weg, es zu tun? Kann es auch mit CSS gemacht werden?

Ich habe hier eine Geige aufgestellt: http://jsfiddle.net/19bdpgsf/. In der Geige versuche ich, das child2 Element relativ zu dem notparentdiv zu positionieren, so wie es relativ zu dem parent div positioniert wurde. Ist es möglich, nur CSS zu verwenden?

Danke.

+0

, die Sie div wollen und mit res wo – imGaurav

+0

die child2 div positionieren pect auf die notparentdiv genau wie, wie es derzeit in Bezug auf die Eltern in der Geige positioniert ist. Ich habe das in der Frage erwähnt. – Akhoy

+0

http://jsfiddle.net/19bdpgsf/1/ etwas wie das? – imGaurav

Antwort

0

Sie könnten die absolute Positionierung (relativ zum gesamten Text der Seite) verwenden, aber ansonsten glaube ich nicht, dass es einen anderen Weg als jQuery gibt.

+0

Aber in meinem Beispiel wird position: relative bereits auf das Eltern-Div angewendet. Es ignoriert nur die Körperposition: relativ. – Akhoy

0

Eine andere Möglichkeit, wenn Sie nicht wollen CSS Positionen verwenden, verwenden jquery wie unten versetzt Sie auf Position 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>

Sie können ein div in einem anderen div positionieren, die als nicht Elternteil mit absoluten relativen Positionen ist unter

.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

Nicht so. Sie haben gerade die Position entfernt: Relativ bereits im Eltern-Div. Ich will das nicht. – Akhoy

+0

jetzt ist es relativ zu den Nicht-Elternteil div, nicht cool? – imGaurav

+0

Nein :). Was ist, wenn ich andere Divs relativ zu diesem Elternteil habe? Es wird die Stile durcheinander bringen. – Akhoy

Verwandte Themen