2010-12-16 17 views
79

Mam tabelę z wieloma wierszami na mojej stronie. Chciałbym ustawić wysokość stołu, powiedzmy na 500px, tak, że jeśli wysokość stołu jest większa, pojawi się pionowy pasek przewijania. Próbowałem użyć atrybutu CSS height na table, ale to nie działa.Jak określić wysokość stołu, aby pojawił się pionowy pasek przewijania?

+1

Być może użyję 'max-height' zamiast tylko' height', ponieważ ta ostatnia wymusi wzrost wysokości stołu o 500px' – Fred

+1

Możesz zadać drugie pytanie, o to, aby nie przewijać wiersza nagłówka. ;) –

+0

Zobacz także http://stackoverflow.com/questions/1587927/scrolling-cell-in-a-100-height-table –

Odpowiedz

126

Spróbuj użyć właściwości CSS overflow. Istnieją również oddzielne właściwości do definiowania zachowania tylko przelewu poziomego (overflow-x) i przelewu pionowego (overflow-y).

Skoro chcesz tylko pionowy zwój, spróbuj tego:

table { 
    height: 500px; 
    overflow-y: scroll; 
} 

EDIT:

Widocznie <table> elementy nie szanują własności overflow. Wygląda na to, że elementy <table> nie są domyślnie renderowane jako display: block (w rzeczywistości mają swój własny typ wyświetlania). Można wymusić właściwość overflow pracować przez ustawienie elementu <table> być typ bloku:

table { 
    display: block; 
    height: 500px; 
    overflow-y: scroll; 
} 

Należy pamiętać, że spowoduje to element mieć szerokość 100%, więc jeśli nie chcesz, aby zająć całą poziomą szerokość strony, należy również podać jawną szerokość elementu.

+3

Nie ogranicza to jednak wysokości. – Fred

+0

@Fred: Myślałem, że to domniemane, ale masz rację. Dodałem jawną właściwość 'height' do mojego przykładu. – AgentConundrum

+0

To nie działa: http://jsfiddle.net/TSGSA/ –

44

Musisz zawinąć tabelę wewnątrz innego elementu i ustawić wysokość tego elementu. Przykład z wbudowanym css:

<div style="height: 500px; overflow: auto;"> 
<table> 
</table> 
</div> 
+5

To nie pozwoli na utrzymanie thead w miejscu, gdy tbody przewija. – David

+12

Ten wymóg nie znajduje się w pierwotnym pytaniu. –

+1

Ta metoda działa również w IE –

Powiązane problemy