Чи можна додати горизонтальну смугу прокрутки до таблиці HTML? Насправді мені потрібно, щоб він прокручувався як вертикально, так і горизонтально, залежно від того, як росте таблиця, але я не можу отримати жодну смугу прокрутки, щоб вона з’явилася.
Чи можна додати горизонтальну смугу прокрутки до таблиці HTML? Насправді мені потрібно, щоб він прокручувався як вертикально, так і горизонтально, залежно від того, як росте таблиця, але я не можу отримати жодну смугу прокрутки, щоб вона з’явилася.
Відповіді:
Ви спробували overflow
властивість CSS ?
overflow: scroll; /* Scrollbar are always visible */
overflow: auto; /* Scrollbar is displayed as it's needed */
ОНОВЛЕННЯ
Як вказують інші користувачі, цього недостатньо, щоб додати смуги прокрутки.
Тому, будь ласка, перегляньте та підтвердіть коментарі та відповіді нижче.
display: block
.
display: block
свій стілпотім, встановити overflow-x:
на auto
.
table {
display: block;
overflow-x: auto;
white-space: nowrap;
}
Приємно і чисто. Немає зайвого форматування.
Ось додаткові приклади із прокручуванням підписів таблиці зі сторінки мого веб-сайту.
white-space: nowrap;
допомагає негайно побачити смугу прокрутки.
white-space: nowrap;
проблема не вирішує (тестується на Firefox). Ширина рядків менша за ширину таблиці, коли недостатньо вмісту (тексту) для розширення рядків.
Загорніть стіл у DIV, встановіть такий стиль:
div.wrapper {
width: 500px;
height: 500px;
overflow: auto;
}
overflow:auto
тут непотрібно. Чи знаєте ви все-таки досягти цього, не встановлюючи ширину ... що завжди здається рішенням у html - жорсткому коді деякої ширини чи висоти, але це, здається, перешкоджає моменту створення двигуна!
Використовуйте для цього атрибут CSS " overflow ".
Короткий підсумок:
overflow: visible|hidden|scroll|auto|initial|inherit;
напр
table {
display: block;
overflow: scroll;
}
Я мав добрий успіх із рішенням, запропонованим @Serge Stroobandt, але я зіткнувся з проблемою @Shevy мав з осередками тоді не заповнити всю ширину таблиці. Я зміг виправити це, додавши до стилів деякі стилі tbody
.
table {
display: block;
overflow-x: auto;
white-space: nowrap;
}
table tbody {
display: table;
width: 100%;
}
Це працювало для мене в Firefox, Chrome та Safari на Mac.
Я не міг змусити жодне з перерахованих вище рішень працювати. Однак я знайшов злом:
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>
Це вдосконалення відповіді Сержа Стройбандта і працює чудово. Він вирішує питання про таблицю, не заповнюючи всю ширину сторінки, якщо у неї менше стовпців.
<style>
.table_wrapper{
display: block;
overflow-x: auto;
white-space: nowrap;
}
</style>
<div class="table_wrapper">
<table>
...
</table>
</div>
white-space: nowrap;
, Здається необов'язковим.
Я зіткнувся з тим же питанням. Я виявив таке рішення, яке було протестовано лише в Chrome v31:
table {
table-layout: fixed;
}
tbody {
display: block;
overflow: scroll;
}
Я зрозумів цю відповідь, грунтуючись на попередньому рішенні, і це коментар і додав деякі мої корективи. Це працює для мене на чуйному столі.
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;
}
"Ширина більше 100%" на столі справді змусила мене працювати.
.table-wrap {
width: 100%;
overflow: auto;
}
table {
table-layout: fixed;
width: 200%;
}
//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>