2009-07-08 5 views
2

Ich habe ein Div, in dem ich eine permanente vertikale Bildlaufleiste benötigen. Manchmal wird die Bildlaufleiste benötigt, weil das div überschüssigen Inhalt enthält und andere Male nicht benötigt wird, aber ich möchte, dass die Darstellung konsistent ist - selbst wenn es keinen übermäßigen Inhalt im div gibt, soll es eine Bildlaufleiste enthalten. Ich habe versucht, dies aber nicht eine Scrollbar hinzufügen, wenn kein Überschuss Inhalt ist:Alternative zu "Überlauf: scroll;" eine permanente vertikale Bildlaufleiste in einem div erstellen?

div#collection 
{ 
    margin: 0 0 0 0; 
    padding: 0 0 0 0; 
    border: 0 0 0 0; 
    float: right; 
    width: 200px; 
    height: 100%; 
    background: white; 
    overflow:scroll; 
} 

Ich habe auch versucht, die Höhe auf 200% zu erhöhen (HTML und Körper werden auf 100% gesetzt), aber dann die ganze Seite scrollt - was ich nicht will - ich möchte, dass das div alleine scrollt, während der Rest der Seite dort bleibt, wo es ist.

Irgendwelche Vorschläge?

+0

Überlauf helfen: scroll ist, was Sie wollen ... wir den Rest der Geschichte sehen müsste, um zu sehen, was falsch ist. –

Antwort

4

Versuchen wollen einen Wrapper Behälter innerhalb des div zu setzen, und setzen Sie ihn auf Höhe: 101%.

+0

Ja. Das war's. Vielen Dank. –

+0

Habe diesen Fix noch nie gesehen. Nice find :) –

0

Verwenden overflow:auto es wird tun, was Sie

+0

Auto fällt nur in einer Bildlaufleiste, wenn der Inhalt überläuft. Klingt so, als wolle er es dauerhaft dort haben. –

+1

ja ich habe es falsch gelesen .. Ich suck :) – Cfreak

2

Die meisten neueren Browsern unterstützt CSS3 des Überlauf-x und Überlauf-y:

div.verticalscroll { 
    overflow: auto; /* For browsers that can't do overflow-y */ 
    overflow-y: scroll; /* Controls overflow on the y-axis */ 
} 

http://www.brunildo.org/test/Overflowxy2.html

+0

Aber th W3C Validator wird nicht, wenn Sie es ausdrücklich sagen, dass Sie CSS3 verwenden – Moshe

+0

Der Validator ist nur ein Werkzeug. Overflow-x und -y sind in der Spezifikation und in den Browsern, daher kann ich kein Problem sehen, sie entsprechend zu verwenden. –

0

Try Überlauf-y Siehe: blättern ..., die den Trick tun würde!

1

Geben Sie dem oberen Container eine Höhe und einen Überlauf-y: Bildlauf, dann einen Untercontainer für den Rest des Inhalts mit einer Mindesthöhe, die um einige Pixel höher als die Höhe des Containers ist.

div#collection 
{ 
    margin: 0 0 0 0; 
    padding: 0 0 0 0; 
    border: 0 0 0 0; 
    float: right; 
    width: 200px; 
    height: 400px; 
    background: white; 
    overflow:scroll; 
} 

div#sub { 
    min-height: 402px; 
} 

<div id="collection"> 
    <div id="sub"> 
     Content goes here. 
    </div> 
</div> 
0
overflow: -moz-scrollbars-vertical; 
overflow-y: scroll; 

das Sie können