Czy istnieje sposób na dodanie poziomego paska przewijania do tabeli HTML? Właściwie potrzebuję, aby można go było przewijać zarówno w pionie, jak iw poziomie, w zależności od tego, jak rośnie tabela, ale nie mogę wyświetlić żadnego paska przewijania.
overflow: scroll;/* Scrollbar are always visible */
overflow:auto;/* Scrollbar is displayed as it's needed */
AKTUALIZACJA
Jak wskazują inni użytkownicy, to nie wystarczy, aby dodać paski przewijania.
Dlatego prosimy o zapoznanie się z poniższymi komentarzami i odpowiedziami oraz ich głosowanie.
Według moich własnych prób i wszystkiego, co przeczytałem w Internecie, to po prostu nie zadziała. Oczywiście możesz przepełnić element opakowania, ale nie samą tabelę.
@SergeStroobandt nie, w moim przypadku white-space: nowrap;nie rozwiązuje problemu (testowane na Firefoksie). Szerokość wierszy jest mniejsza niż szerokość tabeli, gdy nie ma wystarczającej ilości treści (tekstu), aby rozszerzyć wiersze.
Wydaje się, że overflow:autotutaj jest niepotrzebne. Czy wiesz o tym, aby osiągnąć to bez ustawiania szerokości ... to zawsze wydaje się być rozwiązaniem w html - zakoduj na stałe jakąś szerokość lub wysokość, ale wydaje się, że pokonuje sens posiadania silnika układu!
Odniosłem dobry sukces z rozwiązaniem zaproponowanym przez @Serge Stroobandt, ale napotkałem problem, który @Shevy miał z komórkami, które nie wypełniały pełnej szerokości tabeli. Udało mi się to naprawić, dodając kilka stylów do tbody.
Nie udało mi się uruchomić żadnego z powyższych rozwiązań. Jednak znalazłem hack:
body {background-color:#ccc;}.container {width:300px;background-color: white;}
table {width:100%;border-collapse: collapse;}
td {border:1px solid black;}/* try removing the "hack" below to see how the table overflows the .body */.hack1 {display: table;table-layout: fixed;width:100%;}.hack2 {display: table-cell;overflow-x: auto;width:100%;}
<divclass="container"><divclass="hack1"><divclass="hack2"><table><tr><td>table or other arbitrary content</td><td>that will cause your page to stretch</td></tr><tr><td>uncontrollably</td><td>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</td></tr></table></div></div></div>
@ Gábriel Cieszę się, że to zadziałało. Próbowałem tego ponownie w przeglądarce Firefox i wygląda na to, że nie renderuje się poprawnie :-( i.imgur.com/BcjSaCV.png Chrome nadal wygląda dobrze.
Dziwne; Używałem go dokładnie w przeglądarce Firefox i tam działało - chociaż nie w tej dokładnej konfiguracji. Chciałem wyrenderować dużą siatkę składającą się z elementów div 10 x 10 pikseli ze zwiniętymi krawędziami i maksymalną szerokością + overflow-x: auto wydawało się być kluczem. Z tymi na miejscu wszystko wyglądało idealnie. Poza tym w ogóle nie używam <table>, tylko elementy div, z wyświetlaniem: table, table-row i table-cell.
Zrozumiałem tę odpowiedź w oparciu o poprzednie rozwiązanie i jego komentarz oraz dodałem kilka własnych poprawek. To działa dla mnie na responsywnym stole.
table {
display:inline-block;
overflow-x:auto;
white-space: nowrap;// make fixed table width effected by overflow-x
max-width:100%;// hide all borders that make rows not filled with the table width
border:0;}// add missing borders
table td {
border:1px solid;}
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.