2016-02-04 164 views
1

我知道這是不可能的與CSS,但我試圖找到一些jQuery解決方案,迄今沒有運氣與堆棧上的答案。忽略所有相對定位的父div div arround絕對定位div?

無論如何,HTML爲了看起來是這樣的,它需要保持這樣的:

<div class="wrapper"> 
    <div style="position:relative;"> 
    <div style="position:relative;"> 
     <div class="dont-want-parents" style="position:absolute;"> 
     </div> 
    </div> 
    </div> 
</div> 

所以,問題是如何定位分度類「不要想學的父母」的右下方的包裝div,忽略所有相對定位的父母。

謝謝大家誰試圖幫助,最後我想出了一個解決方案:

$(window).on("load resize",function(e){ 
    var parentoffset = $('.dont-want-parents').parent(); 
    var elwidth = $('.dont-want-parents').width(); 
    var offset = parentoffset.offset(); 
    $('.dont-want-parents').css('right', -offset.left + elwidth); 
}); 

這裏的工作fiddle

+0

那麼你標記的結構應該是不同的... – Rayon

+0

@RayonDabre好吧,我完全同意,但它不是由我來改變它:)或者不如說我想要改變它,但我必須像它不幸的工作 – Darko

+1

你需要取消由母relpos榆樹完成的抵消;如果一個人去150px,那麼你需要去-150px ... – dandavis

回答

0

一個你可以將它們全部恢復static,這樣一個與absolute忽略它們。此外,還需要topleft,因爲position:absolute只會從佈局中移除元素,但不會從原始位置移除元素。

$('.wrapper > div, .wrapper > div > div').css('position', 'static');
div{ 
 
    padding: 50px; 
 
    background: rgba(255, 0, 0, 0.5); 
 
} 
 

 
.wrapper{ 
 
    position: relative; 
 
    background: green; 
 
} 
 

 
.dont-want-parents{ 
 
    background: blue; 
 
    top: 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrapper"> 
 
    <div style="position:relative;"> 
 
    <div style="position:relative;"> 
 
     <div class="dont-want-parents" style="position:absolute;"> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

另一種方法是隻抽出了不管它是元素,並把它的地方,安全是絕對的。

$('.dont-want-parents').appendTo('.wrapper');
div{ 
 
    padding: 50px; 
 
    background: rgba(255, 0, 0, 0.5); 
 
} 
 

 
.wrapper{ 
 
    position: relative; 
 
    background: green; 
 
} 
 

 
.dont-want-parents{ 
 
    background: blue; 
 
    top: 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="wrapper"> 
 
    <div style="position:relative;"> 
 
    <div style="position:relative;"> 
 
     <div class="dont-want-parents" style="position:absolute;"> 
 
     </div> 
 
    </div> 
 
    </div> 
 
</div>

+0

更準確,這是一個簡化版本的佈局,但所有的相對div需要保持相對,因爲有很多其他元素取決於此。 – Darko

+0

對不起,但這不是一個答案,同樣的事情也可以用CSS來完成,正如我所說,親戚必須始終保持相對 – Darko

+0

尼斯編輯與「追加」:),我已經嘗試完全一樣,但它打破了佈局,不知道是否可以用jQuery偏移量來完成一些事情? – Darko