2016-11-26 99 views
3

注意:容器的位置必須爲absolute caue我的插件需要這樣做。粘性元素到父溢出容器

<div class = "container"> 
    <div id = "element1"> 
    </div> 
    <div id = "element2"> 
    </div> 
    <div id = "element3"> 
    </div> 
</div> 

.container { 
    display: block; 
    overflow-y: scroll; 
    overflow-x: hidden; 

    background-color: yellow; 
} 

#element1 { 
    background-color: red; 
} 
#element2 { 
    background-color: green; 
} 
#element3 { 
    background-color: blue; 
} 

Should work like this

+0

請列出所有的要求,使我們這些試圖回答這個問題不必不斷調整答案。 – rfornal

回答

0

#element3的需求來.container外面移動;但如果你需要的容器這種方式,嘗試...

小提琴:https://jsfiddle.net/rfornal/y3qs8nxv/

<div class="container"> 
    <div class="inner-container"> 
    <div id="element1"></div> 
    <div id="element2"></div> 
    </div> 
    <div id="element3"></div> 
</div> 

嘗試CSS像這樣...

.container { 
    display: block; 
    position: absolute; 
    width: 50%; 
    height: 50%; 
} 

.inner-container { 
    display: block; 
    overflow-y: scroll; 
    overflow-x: hidden; 

    background-color: yellow; 
    position: relative; 
    z-index: 10; 
    width: 100%; 
    height: 100%; 
} 

#element1 { 
    background-color: red; 
    padding: 1em; 
} 
#element2 { 
    background-color: green; 
    padding: 1em; 
} 
#element3 { 
    background-color: blue; 
    position: absolute; 
    right: -2em; 
    bottom: -2em; 
    height: 4em; 
    width: 4em; 
    z-index: 20; 
} 
+0

不幸的是我的容器位置必須是「絕對的」,因爲我的插件要求。 – Dominik

+0

我已經更改了代碼以適應此。你可能想考慮把這一切都放在一個「包裝器」裏面;該包裝器可能帶有'.inner-container'和'#element3'的'.container'作爲插件約束的子節點。 – rfornal

+0

更改我的答案,以適應你的要求,以容器內的#element3'。 – rfornal

0

在您的標記,#element3裏面.container

但在圖片中#element3.container之外。

你有兩個選擇:

  1. 寫標記,以便#element3超出.container;或
  2. 添加JavaScript它選擇#element3,然後移動它之外.container
+0

。我需要在容器內部有#element3,否則我的網格會被破壞。 – Dominik

+1

對。那麼,你的答案就是這樣。您不能在'.container'之外將'#element3'顯示在圖片中。 – Rounin