Я пытаюсь создать таблицу с фиксированным заголовком и прокручиваемым содержимым, используя таблицу начальной загрузки 3. К сожалению, решения, которые я нашел, не работают с начальной загрузкой и не портят стиль.
Здесь есть простая таблица начальной загрузки, но мне почему-то неизвестно, высота тела не 10px.
height: 10px !important; overflow: scroll;
Пример:
<link rel="stylesheet" type="text/css" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
<table class="table table-striped">
<thead>
<tr>
<th>Make</th>
<th>Model</th>
<th>Color</th>
<th>Year</th>
</tr>
</thead>
<tbody style="height: 10px !important; overflow: scroll; ">
<tr>
<td class="filterable-cell">111 Ford</td>
<td class="filterable-cell">Escort</td>
<td class="filterable-cell">Blue</td>
<td class="filterable-cell">2000</td>
</tr>
<tr>
<td class="filterable-cell">Ford</td>
<td class="filterable-cell">Escort</td>
<td class="filterable-cell">Blue</td>
<td class="filterable-cell">2000</td>
</tr>
<tr>
<td class="filterable-cell">Ford</td>
<td class="filterable-cell">Escort</td>
<td class="filterable-cell">Blue</td>
<td class="filterable-cell">2000</td>
</tr>
<tr>
<td class="filterable-cell">Ford</td>
<td class="filterable-cell">Escort</td>
<td class="filterable-cell">Blue</td>
<td class="filterable-cell">2000</td>
</tr>
</tbody>
</table>
html
css
twitter-bootstrap
html-table
Джулио
источник
источник
Ответы:
Фиксированная голова таблицы - только CSS
Просто
position: sticky; top: 0;
вашиth
элементы. (Chrome, FF, Edge)Исправлена проблема с границами TH
Поскольку
border
невозможно перерисовать правильно переведенныйTH
элемент, для воссоздания и визуализации «границ» используйтеbox-shadow
свойство:Показать фрагмент кода
Фиксированная головка стола - с помощью JS. (IE),
Вы можете использовать немного JS и translateY на
th
элементыПример jQuery
Или простой ES6, если вы предпочитаете (jQuery не требуется):
источник
Скорее всего, вы получите несколько таблиц на одной странице, поэтому вам нужны классы CSS. Пожалуйста, найдите модифицированное решение @ giulio для этого.
Просто объявите это в таблице:
CSS
Имейте в виду, что текущая реализация подходит только для пяти столбцов. Если вам нужно другое число, измените параметр ширины с 20% на * 100% / number_of_columns *.
источник
.header-fixed > thead > tr > th{white-space: nowrap;}
. Если заголовки начинают оборачиваться, это все портитscrollbar-width: none;
в tbody по эстетическим соображениямВот рабочее решение:
Ссылка на jsfiddle
источник
Обновить
Для более новой и все еще поддерживаемой библиотеки попробуйте jquery.floatThead (как упомянуто Бобом Джорданом в комментарии) .
Старый ответ
Это очень старый ответ, библиотека, упомянутая ниже, больше не поддерживается.
Я использую StickyTableHeaders на GitHub, и он работает как шарм!
Мне пришлось добавить этот CSS, чтобы сделать заголовок не прозрачным, хотя.
источник
.tableFloatingHeaderOriginal { //css }
.Не нужно оборачивать это в div ...
CSS :
Bootply : http://www.bootply.com/AgI8LpDugl
источник
position: absolute
Наtbody
помог !! Спасибо !!С css легче
источник
table-layout:fixed
, добавив CSS-класс с JavaScriptПоздно до вечеринки (История моей жизни), но так как это первый результат на Google, и ни один из вышеперечисленных не заставил меня работать, вот мой код
источник
th:nth-child(2), td:nth-child(2)
эквивалентноtr > :nth-child(2)
На мой взгляд, один из лучших плагинов для jQuery - это DataTables .
Он также имеет расширение для фиксированного заголовка , и его очень легко реализовать.
Взято с их сайта:
HTML:
JavaScript:
Но самое простое, что вы можете сделать, просто сделав прокрутку,
<tbody>
это:источник
Последнее добавленное положение: «липкое» было бы самым простым решением здесь
источник
Вам не нужны JS. Важно установить высоту стола в [ vh ]
источник
У меня было много проблем с работой библиотеки stickytableheaders. Проделав немного больше поиска, я обнаружил, что floatThead - это активно поддерживаемая альтернатива с последними обновлениями и лучшей документацией.
источник
Вы должны попробовать с "display: block;" к телу, потому что теперь это встроенный блок и для установки высоты, элемент должен быть "блок"
источник
Сначала добавьте некоторую разметку для таблицы начальной загрузки. Здесь я создал полосатую таблицу, но также добавил пользовательский класс таблицы,
.table-scroll
который добавляет вертикальную полосу прокрутки к таблице и фиксирует заголовок таблицы при прокрутке вниз.CSS
источник
Я использовал плагин floatThead jQuery ( https://mkoryak.github.io/floatThead/#intro )
Документы говорят, что он работает с таблицами Bootstrap 3, и я могу сказать, что он также работает с таблицами Bootstrap 4 с или без помощника, реагирующего на таблицы.
Использовать плагин так просто:
HTML (ванильная разметка таблицы начальной загрузки)
Инициализация плагина:
Полный отказ от ответственности: я не связан с плагином в любом случае. Я обнаружил это после нескольких часов попыток многих других решений, опубликованных здесь и в других местах.
источник
Для чего бы это ни стоило: я опубликовал решение для прокрутки Table -thread с помощью HTML и CSS, которое
visibility
неdisplay
) заголовок нижней таблицы и сделать прокрутку нижней таблицы w / divРешение не зависит от любых используемых стилей / фреймворков - так что, может быть, оно и здесь полезно ...
Подробное описание приведено в разделе « Прокрутка таблиц с использованием HTML и CSS» / код также находится в этой ручке: https://codepen.io/sebredhh/pen/QmJvKy.
источник
Для таблиц полной высоты (страница прокручивается, а не таблица)
Примечание: я перемещаю весь
<thead>...</thead>
beause. В моем случае у меня было две строки (заголовок и фильтры).С JS (jQuery)
CSS (только для стиля)
источник
Теперь, когда «все» браузеры поддерживают ES6, я включил различные предложения, приведенные выше, в класс JavaScript, который принимает таблицу в качестве аргумента и обеспечивает прокрутку тела. Это позволяет механизму компоновки браузера определять ширину заголовка и ячейки тела, а затем сопоставлять ширину столбцов друг с другом.
Высота таблицы может быть установлена явно или сделана так, чтобы заполнять оставшуюся часть окна браузера, и обеспечивает обратные вызовы для таких событий, как изменение размера области просмотра и / или
details
открытие или закрытие элементов.Доступна поддержка многострочных заголовков, и она особенно эффективна, если таблица использует атрибуты id / headers для доступности, как указано в Руководстве WCAC. , что не является таким обременительным требованием, как может показаться.
Код не зависит от каких-либо библиотек, но хорошо работает с ними, если они используются. (Проверено на страницах, которые используют JQuery).
Код и пример использования доступны на Github .
источник
Вы можете поместить два div, где у первого div (Header) будет прозрачная полоса прокрутки, а у второго div будут данные с видимой / автоматической полосой прокрутки. Образец имеет угловой кодовый фрагмент для циклического прохождения данных.
Ниже код работал для меня -
Дополнительный стиль, чтобы скрыть полосу прокрутки заголовка -
источник
Вот моя статья о том, как сделать фиксированный заголовок таблицы с прокручиваемыми строками и столбцами. Столбцы также имеют фиксированную ширину, http://codepen.io/abhilashn/pen/GraJyp
источник
Чистое решение (только CSS)
источник
Поддержка нескольких прокручиваемых таблиц в одном окне.
Чистый CSS & Не фиксированный или липкий.
Я ищу фиксированный заголовок таблицы с автоматическими "td" и "th" шириной в течение многих лет. Наконец я что-то кодировал, это хорошо работает для меня, но я не уверен, что это работает хорошо для всех.
Проблема 1: Мы не можем установить высоту таблицы или tbody, хотя у нас есть тонны "tr", это из-за свойств таблицы по умолчанию.
Решение: Установите для таблицы свойство отображения.
Проблема 2: Когда мы устанавливаем свойство отображения, ширина элементов "td" не может быть равна ширине элементов "th". И трудно заполнить элементы должным образом в таблице полной ширины, как 100%.
Решение: CSS "flex" - очень хорошее решение для настроек ширины и заполнения, поэтому мы будем создавать наши элементы tbody и thead с помощью CSS "flex".
jsfiddle
источник
источник
Использовал эту ссылку, stackoverflow.com/a/17380697/1725764 , от Ашема Колами в комментариях к оригинальным постам и использовал display: inline-blocks вместо float. Исправляет границы, если у таблицы также есть класс 'ограниченный таблицей'.
Затем просто добавьте ширину тд и т
источник
Я сделал какое-то работающее CSS-решение, используя
position: sticky
. Должен работать на вечнозеленых браузерах. Попробуйте изменить размер браузера. Все еще есть некоторая проблема с макетом в FF, она будет исправлена позже, но по крайней мере заголовки таблиц обрабатывают вертикальную и горизонтальную прокрутку. Пример Codepenисточник
HTML
CSS
источник
Простой способ без фиксированной ширины:
Источник
Теперь, на onLoad, чтобы настроить ширину, просто добавьте этот скрипт jquery:
источник
поместите таблицу внутри div таким образом, чтобы сделать таблицу с возможностью прокрутки вертикально. изменить,
overflow-y
чтобыoverflow-x
сделать таблицу прокручиваемой горизонтально. простоoverflow
чтобы сделать таблицу прокручиваемой как горизонтальной, так и вертикальной.источник
источник