2013-03-02 19 views
9

Ist es möglich, die Position eines Elements relativ zum übergeordneten div zu fixieren, nicht das Browserfenster?Fixing-Position relativ zum übergeordneten div

Sagen, ich habe:

<div id="pagecontainer"> 

    <div id="linkspage"> 

     <div class="sidelinks"> 
      <a href="#page1" class="link">Link 1</a> 
      <p> 
      <a href="#page2" class="link">Link 2</a> 
      <p> 
      <a href="#page3" class="link">Link 3</a> 
      <p> 
      <a href="#page4" class="link">Link 4</a> 
      <p> 
     </div> 

     <div class="linkscontent"> 
      content of links page 
     </div> 

    </div> 

    //OTHER PAGES 

</div> 

Im Grunde eine Seite mit zwei Abschnitten, der linke Abschnitt eine Liste von Links ist, während der rechte Abschnitt des Seiteninhalt ist. Ich möchte, dass der Inhalt scrollbar ist, aber die Links so bleiben, dass sie beim #pagecontainer verbleiben, damit sie nicht scrollen, wenn #pagecontainer scrollt, aber sie werden sich bewegen, wenn ich das gesamte Browserfenster durchblättere.

Ich habe bereits versucht, die JQuery "Fix" Plugin: https://github.com/bbarakaci/fixto. Aber ich kann das nicht verwenden, da meine Seiten ein- und ausgeblendet werden und das Skript ausfällt, wenn das Elternelement (#pagecontainer) ein Alpha von 0 hat, es denkt, dass das Elternelement weg ist und nirgends repariert werden kann.

Danke.

Antwort

28

Geben Sie das übergeordnete position: relative, wie folgt aus:

.parent { 
    position: relative; 
} 
.child { 
    position: absolute; 
    top: 0; 
} 

DEMO See.

+0

Es funktioniert nicht. Ich habe versucht, sowohl #pagecontainer und #linkspage zu relativ, nur #pagecontainer zu relativ, und nur #linkspage zu relativ, mit .sideslinks als absolut, nichts funktioniert. – Windbrand

+0

Können Sie einen Link zu der Seite veröffentlichen, an der Sie gerade arbeiten? – zakangelle

+2

E_WORKSFORME :-) – kguest

1

Ich habe diese CodePen für Sie erstellt.

Von Ihrer Beschreibung ist es auf halbem Weg.

aber sie werden sich bewegen, wenn ich das gesamte Browserfenster scrollte.

Sie iframe oder irgendeine Art von JavaScript-Lösung verwenden müssen.

Verwandte Themen