[英]Position absolute div with reference to its parent parent
我有三個嵌套div的結構
<div id="div1">
<div id="div2"> // has come content
<div id="div3">
// has some content with a form
</div>
</div>
</div>
所有三個div都是絕對的。現在我希望#div3
根據#div1
定位,如果我#div3
是right:0px;
然后它應該到#div1
最右邊
注意請不要要求更正我未開發的結構, #div1
和#div2
不在我的控制范圍內。
我只有想法是移動#div3
並通過jQuery將其附加到#div1
。但是如果可能的話,我希望有一個純CSS
解決方案。 否則我將使用jQuery append
我以為我已經解釋好了css不會被要求。 但是聽說它是CSS
#div1 {
position: absolute;
display: none;
}
#div2
{
position: absolute;
top: 85px;
left: 56px;
width: 300px;
z-index: 2;
}
#div3 {//what ever you want to write to make it relative to #div1 }
如果div3
的位置是絕對的,它會查看他的祖先,直到它找到一個相對定位的父級。 為了達到你想要的,你需要:
#div1 { position: relative; }
#div2 { position: static; } // default positioning for DIVs
#div3 { position: absolute; right: 0; }
使用position()
方法獲取相對於它的父DIV1
DIV2
位置,並將這些值用作負數,以使DIV 3看起來在div1中。
以下應將DIV3
放在DIV1
左上角
var div2Pos= $('#div2').position();
$('#div3').css({top: 0-div2Pos.top, left: 0-div2Pos.left})
演示: http : //jsfiddle.net/q5RgZ/1
另一個簡單的解決方案是將div3移出div2並放在div1中
$('#div3').appendTo('#div1')
將#div1
位置設置為relative應該可以解決問題。 但是如果在#div1
使用position:absolute
是必需的,那么包含這三個div標簽的元素應該使用position:relative
。 像這樣:
HTML:
<div id="container">
<div id="div1">
<div id="div2"> // has come content
<div id="div3">
// has some content with a form
</div>
</div>
</div>
</div>
CSS:
#container {
position: relative;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.