Есть ли способ добавить горизонтальную полосу прокрутки в таблицу HTML? Мне действительно нужно, чтобы он прокручивался как по вертикали, так и по горизонтали в зависимости от того, как растет таблица, но я не могу получить ни одну полосу прокрутки.
Добавить горизонтальную полосу прокрутки в таблицу html
Ответ 1
Вы попробовали свойство CSS overflow
?
overflow: scroll; /* Scrollbar are always visible */
overflow: auto; /* Scrollbar is displayed as it needed */
UPDATE
Как указывают другие пользователи, этого недостаточно, чтобы добавить полосы прокрутки.
Поэтому, пожалуйста, см. Комментарии и ответы ниже.
Ответ 2
Сначала сделайте display: block
вашей таблицы
затем установите для параметра overflow-x:
значение auto
.
table {
display: block;
overflow-x: auto;
white-space: nowrap;
}
Красиво и чисто. Нет лишнего форматирования.
Вот более сложные примеры с прокруткой заголовков таблицы на странице моего сайта.
Ответ 3
Оберните таблицу в DIV, задав следующий стиль:
div.wrapper {
width: 500px;
height: 500px;
overflow: auto;
}
Ответ 4
Для этого используйте атрибут CSS overflow.
Краткое описание:
overflow: visible|hidden|scroll|auto|initial|inherit;
например.
table {
display: block;
overflow: scroll;
}
Ответ 5
Я столкнулся с той же проблемой. Я обнаружил следующее решение, которое было протестировано только в Chrome v31:
table {
table-layout: fixed;
}
tbody {
display: block;
overflow: scroll;
}
Ответ 6
Я не мог заставить работать ни одно из перечисленных выше решений. Однако я нашел взлом:
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%;
}
<div class="container">
<div class="hack1">
<div class="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>
Ответ 7
Это улучшение ответа Сержа Стробандта и работает отлично. Это решает проблему незаполнения таблицы на всю ширину страницы, если в ней меньше столбцов.
<style>
.table_wrapper{
display: block;
overflow-x: auto;
white-space: nowrap;
}
</style>
<div class="table_wrapper">
<table>
...
</table>
</div>
Ответ 8
У меня был хороший успех с решением, предложенным @Serge Stroobandt, но я столкнулся с проблемой, которая возникла у @Shevy с ячейками, которые не заполняли всю ширину таблицы. Я смог это исправить, добавив несколько стилей к tbody
.
table {
display: block;
overflow-x: auto;
white-space: nowrap;
}
table tbody {
display: table;
width: 100%;
}
Это сработало для меня в Firefox, Chrome и Safari на Mac.
Ответ 9
Я разобрался с этим ответом на основе предыдущего решения и его комментарием, а также добавил некоторые свои собственные корректировки. Это работает для меня на адаптивном столе.
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;
}
Ответ 10
"Ширина таблицы более 100%" действительно заставила меня работать.
.table-wrap {
width: 100%;
overflow: auto;
}
table {
table-layout: fixed;
width: 200%;
}
Ответ 11
//Representation of table
<div class="search-table-outter">
<table class="table table-responsive search-table inner">
</table>
</div>
//Css to make Horizontal Dropdown
<style>
.search-table{table-layout: auto; margin:40px auto 0px auto; }
.search-table, td, th {
border-collapse: collapse;
}
th{padding:20px 7px; font-size:15px; color:#444;}
td{padding:5px 10px; height:35px;}
.search-table-outter { overflow-x: scroll; }
th, td { min-width: 200px; }
</style>