2010-04-13 10 views
6

Mam table z 2 kolumnami i każda kolumna ma szerokość 800 pikseli. Chcę pokazać tę tabelę w oknie 800x50. Aby wyświetlić pełną tabelę, powinien być poziomy i pionowy pasek przewijania.Jak ustawić stół, który jest szerszy niż rozmiar ekranu, przewijany i czy wiersz nagłówka jest stały?

Chociaż znalazłem kilka powiązanych rozwiązań (this i this) na SO, działają one tylko wtedy, gdy szerokość stołu jest mniejsza niż rozmiar ekranu. W moim przypadku rozmiar ekranu to 1200 pikseli, a całkowita szerokość stołu to 1600 pikseli.

Jak mogę to zrobić? Chcę osiągnąć coś w rodzaju this.

EDYTOWANIE Ups, zapomniałem dodać jeszcze jedno wymaganie. Przepraszam. Chcę, aby nagłówek tabeli pozostał naprawiony, podczas gdy użytkownik przewija tabelę.

EDIT2

Próbowałem poniżej wymienionych rozwiązań zawinąć w div, ale w tym wypadku pionowy pasek przewijania nie pokazuje się. Zobacz this table z opakowaniem div. Wygląda na to, że problem występuje tylko wtedy, gdy szerokość stołu jest większa niż rozmiar ekranu. Testuję na FF3.6.

Edit3

aktualny kod table. Nie ma pionowego przewijacza, mimo że mogę przewijać w pionie.

<div style="overflow:scroll; width:800px;height:50px" > 
<table style="width:1600px" border="1"> 
    <thead> 
    <tr> 
     <th style="width:800px">id_1</th> 
     <th style="width:800px">id_1</th> 
    </tr> 
    </thead> 
    <tbody style=""> 
    <tr><td>1200</td><td>1200</td></tr> 
    <tr><td>1200</td><td>1200</td></tr> 
    <tr><td>1200</td><td>1200</td></tr> 
    <tr><td>1200</td><td>1200</td></tr> 
    <tr><td>1200</td><td>1200</td></tr> 
    <tr><td>1200</td><td>1200</td></tr> 
    </tbody> 
</table> 
</div> 
+0

Przykro mi, ale jest bezużyteczny 800x50 wymiar. Paski przewijania zajmują około 20 pikseli, co daje ci około 30 pikseli do zabawy ... więc prosisz użytkowników o przewijanie z jednym lub dwoma rzędami widocznymi na raz? Pewnie nie masz na myśli 800x500? – Robusto

+0

To są fałszywe liczby, chcę tylko sprawić, aby ta tabela działała, a następnie odpowiednio zmienić wymiary. – understack

Odpowiedz

5

Można zawinąć tabelę w div, który ma stały rozmiar (800x50) i ustawić overflow:scroll.

+0

@Vivin Paliath: Nie widzę pionowego przewijania, gdy długość stołu jest większa niż rozmiar ekranu. Zobacz: http://jsbin.com/uwubu3/3 – understack

+0

Widzę paski przewijania dobrze po otwarciu. Masz na myśli rozmiar okna? Jeśli tabela jest większa niż rozmiar okna, będziesz musiał przewinąć całą stronę, aby zobaczyć paski przewijania. Nie ma sposobu, aby ominąć to, aby zmienić rozmiar stołu do rozmiaru okna. –

+0

Nie widzę też pasków przewijania, ale uważam, że tak jest, ponieważ twój wzrost jest mały. Spróbuj ustawić swoją wysokość na 100px i będzie działać poprawnie. –

1

umieścić tabelę w div o szerokości < 800 i ustaw overflow: scroll.

0

Nie wiem, czy to by działało, ale czy próbowałeś ustawić dla strony max-width: 100%?

0

Wystarczy dodać overflow:scroll do css elementu tabeli. Btw. Twój przykład nie pokazuje żadnego przewijania.

+0

@Paul de Vrieze: poprawiono przykład. Teraz pokazuje przewijanie, ale tylko w poziomie. – understack

0

Jeśli chcesz nagłówek do pozostają stałe po prostu zrobić kilka css

#header { 
    position:fixed; 
    left:0; 
    top:0; 
}