Я хотел бы иметь таблицу на моем сайте. Проблема в том, что в этой таблице будет около 400 строк. Как я могу ограничить высоту стола и применить к нему полосу прокрутки? Это мой код:
<div class="span3">
<h2>Achievements left</h2>
<table class="table table-striped">
<thead>
<tr>
<th>#</th>
<th>Name</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>Something</td>
</tr>
<tr>
<td>2</td>
<td>Something</td>
</tr>
<tr>
<td>3</td>
<td>Something</td>
</tr>
<tr>
<td>4</td>
<td>Something</td>
</tr>
<tr>
<td>5</td>
<td>Something</td>
</tr>
<tr>
<td>6</td>
<td>Something</td>
</tr>
</tbody>
</table>
<p><a class="btn" href="#">View details »</a></p>
</div>
Я пытался применить максимальную высоту и фиксированную высоту к столу, но это не работает.
twitter-bootstrap
Панги
источник
источник
overflow
только к основанию таблицы, но где<thead>
части всегда отображаются?Вы захотите обернуть его в свой собственный div или присвоить этому span3 свой собственный идентификатор, чтобы не влиять на весь макет.
Вот скрипка: http://jsfiddle.net/zm6rf/
источник
.span3
повлияет на всеspan3
элементы всего сайта, управляемого Bootstrap.Не нужно оборачивать это в div ...
CSS :
Bootply : http://www.bootply.com/AgI8LpDugl
источник
td
элементе различаются по размеру. bootply.com/OsvzINuTUAУ меня была та же проблема, и я использовал комбинацию вышеупомянутых решений (и добавил свой собственный поворот). Обратите внимание, что я должен был указать ширину столбцов, чтобы они оставались согласованными между заголовком и телом.
В моем решении верхний и нижний колонтитулы остаются фиксированными, пока тело прокручивается.
А потом просто применил следующий CSS:
Я надеюсь, что это помогает кому-то еще.
источник
Недавно мне пришлось сделать это с помощью bootstrap и angularjs, я создал директиву angularjs, которая решает проблему, вы можете увидеть рабочий пример и подробности в этом посте .
Вы используете его, просто добавив атрибут с фиксированным заголовком в тег таблицы:
Если вы не используете angularjs, вы можете настроить javascript директивы и использовать его напрямую.
источник
CSS
HTML
источник
.table-class-name { height: 100%; }
,Это может не быть решением для большого количества строк. Я просто использую трюк с таблицей дублирования, чтобы добиться цели для таблицы с небольшим количеством строк, в то время как она может сохранять гибкую ширину столбца, вы можете попробовать эту скрипку .
(Столбец с фиксированной шириной - это метод, который я использую для таблицы с большим количеством строк, для которой требуется только дублирование строки заголовка)
Образец кода:
источник
Поместите таблицу в div и передайте этому div класс
pre-scrollable
.источник
У меня недавно была похожая проблема, и я решил ее, используя смесь разных решений.
Первый и самый простой - использовать две таблицы: одну для заголовков и одну для тела. Это работает, но заголовки и столбцы тела не выровнены. И, так как я хотел использовать авторазмер, который поставляется с таблицами начальной загрузки Twitter, я закончил тем, что создал функцию Javascript, которая изменяет заголовки, когда: тело отображается; окна изменяются; изменяются данные в столбце и т. д.
Вот часть кода, который я использовал:
Заголовки и тело разделены на две отдельные таблицы. Один из них находится внутри DIV с необходимым стилем для создания вертикальных полос прокрутки. Вот CSS, который я использовал:
Я прокомментировал высоту здесь, потому что я хотел, чтобы таблица достигла нижней части страницы, какой бы ни была высота страницы.
Атрибуты сортировки данных, которые я использовал в заголовках, также используются в каждом тд. Таким образом, я мог бы получить ширину и отступ каждого тд и ширину строки. Используя атрибуты сортировки данных, я с помощью CSS устанавливаю соответственно отступы и ширину каждого заголовка и строки заголовка, которая всегда больше, поскольку у нее нет полосы прокрутки. Вот функция, использующая coffeescript:
Здесь я предполагаю, что у вас есть массив заголовков, называемых @headers.
Это не красиво, но это работает. Надеюсь, это кому-нибудь поможет.
источник
Все вышеперечисленные решения также делают прокрутку заголовка таблицы ... Если вы хотите прокрутить только tbody, примените следующее:
источник
Ни один из этих ответов не работал для меня удовлетворительно. Они либо не фиксировали строку заголовка таблицы на месте, либо требовали фиксированной ширины столбца для работы, и даже в этом случае имели тенденцию выравнивать строки заголовка и строки тела в различных браузерах.
Я рекомендую прикусить пулю и использовать подходящий элемент управления сеткой, такой как jsGrid или мой личный фаворит, SlickGrid . Это, очевидно, вводит зависимость, но если вы хотите, чтобы ваши таблицы вели себя как настоящие сетки с кросс-браузерной поддержкой, это избавит вас от лишних усилий. Это также дает вам возможность сортировки и изменения размера столбцов, а также множество других функций, если вы хотите их.
источник
Предложение Джонатана Вуда. У меня нет возможности упаковки таблиц с новым div, так как я использую CMS. Используя JQuery, вот что я сделал:
Это оборачивает элементы таблицы новым div с классом «table-overflow».
Затем вы можете просто добавить следующее определение в ваш файл CSS:
источник
поместите стол внутри div, чтобы сделать таблицу с возможностью прокрутки вертикально. изменить,
overflow-y
чтобыoverflow-x
сделать таблицу прокручиваемой горизонтально. простоoverflow
чтобы сделать таблицу прокручиваемой как горизонтальной, так и вертикальной.источник
Подумал, что я бы опубликовал здесь, так как я не мог заставить все вышеперечисленное работать с Bootstrap 4. Я нашел это в Интернете и отлично работал для меня ...
Я также приложил рабочий jsfindle.
https://jsfiddle.net/jgngg28t/
Надеюсь, это поможет кому-то еще.
источник