1111
Перейти к основному содержаниюПерейти к навигации по документам

Документация и примеры для выбора стиля таблиц (учитывая их преобладающее использование в плагинах JavaScript) Bootstrap.

Обзор

В связи с широким использованием элементов <table> в сторонних виджетах, таких как календари и средства выбора даты, мы сделали так, что таблицы Bootstrap подключены. Добавьте базовый класс .table в любой <table> для расширения стилизацию за счет наших обычных классов, либо классов-модификаторов. Все стили таблиц в Bootstrap не наследуются, то есть любые вложенные таблицы могут быть стилизованы независимо от родительских.

Вот так таблицы, основанные на классе .table, выглядят в базовой разметке таблиц в Bootstrap.

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table"><thead><tr><thscope="col">#</th><thscope="col">First</th><thscope="col">Last</th><thscope="col">Handle</th></tr></thead><tbody><tr><thscope="row">1</th><td>Mark</td><td>Otto</td><td>@mdo</td></tr><tr><thscope="row">2</th><td>Jacob</td><td>Thornton</td><td>@fat</td></tr><tr><thscope="row">3</th><tdcolspan="2">Larry the Bird</td><td>@twitter</td></tr></tbody></table>

Варианты

Используйте их для раскраски рядов или отдельных ячеек таблицы.

ClassЗаголовокЗаголовок
По умолчанию (Default)ЯчейкаЯчейка
Главный (Primary)ЯчейкаЯчейка
Второстепенный (Secondary)ЯчейкаЯчейка
Успех (Success)ЯчейкаЯчейка
Опасность (Danger)ЯчейкаЯчейка
Предупреждение (Warning)ЯчейкаЯчейка
Предупреждение (Info)ЯчейкаЯчейка
Светлый (Light)ЯчейкаЯчейка
Темный (Dark)ЯчейкаЯчейка
<!-- On tables --><tableclass="table-primary">...</table><tableclass="table-secondary">...</table><tableclass="table-success">...</table><tableclass="table-danger">...</table><tableclass="table-warning">...</table><tableclass="table-info">...</table><tableclass="table-light">...</table><tableclass="table-dark">...</table><!-- On rows --><trclass="table-primary">...</tr><trclass="table-secondary">...</tr><trclass="table-success">...</tr><trclass="table-danger">...</tr><trclass="table-warning">...</tr><trclass="table-info">...</tr><trclass="table-light">...</tr><trclass="table-dark">...</tr><!-- On Ячейкаs (`td` or `th`) --><tr><tdclass="table-primary">...</td><tdclass="table-secondary">...</td><tdclass="table-success">...</td><tdclass="table-danger">...</td><tdclass="table-warning">...</td><tdclass="table-info">...</td><tdclass="table-light">...</td><tdclass="table-dark">...</td></tr>
Придание смысла вспомогательным технологиям

Использование цвета как дополнительного инструмента информативности доступно только в визуальной сфере, что ограничивает пользователей вспомогательных технологий, таких как программы чтения с экрана. Убедитесь, что информация, обозначенная цветом, также доступна из самого содержимого (например, видимый текст) или содержится в альтернативных средствах, таких как дополнительный скрытый в классе .visually-hidden текст.

Акцентированные таблицы

Разделенные «полосами» ряды

Добавьте класс .table-striped к <tbody> для разделения «полосками зебры» рядов таблицы.

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-striped"> ...
</table>

Эти классы также можно добавить в следующие варианты таблиц:

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-dark table-striped"> ...
</table>
#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-success table-striped"> ...
</table>

Ряды с :hover (отзывчивость при наведении)

Добавьте класс .table-hover в <tbody> для активации :hover у рядов таблицы.

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-hover"> ...
</table>
#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-dark table-hover"> ...
</table>

Эти :hover ряды также можно комбинировать с «полосатым» вариантом:

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-striped table-hover"> ...
</table>

Активные таблицы

Для выделиния ячеек таблицы добавьте класс .table-active.

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table"><thead> ... </thead><tbody><trclass="table-active"> ... </tr><tr> ... </tr><tr><thscope="row">3</th><tdcolspan="2"class="table-active">Larry the Bird</td><td>@twitter</td></tr></tbody></table>
#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-dark"><thead> ... </thead><tbody><trclass="table-active"> ... </tr><tr> ... </tr><tr><thscope="row">3</th><tdcolspan="2"class="table-active">Larry the Bird</td><td>@twitter</td></tr></tbody></table>

Как работают варианты и акцентированные таблицы?

Для акцентированные таблиц (разделенных «полосами» рядов, рядов с :hover и активных таблиц) мы использовали следующие методы для эффективной работы всех наших контекстуальных классов:

  • Мы начинаем с установки фона ячейки таблицы с помощью настраиваемого свойства --bs-table-bg. Затем все варианты таблицы устанавливают это настраиваемое свойство для раскрашивания ячеек таблицы. Таким образом, у нас не будет проблем, если полупрозрачные цвета используются в качестве фона стола.
  • Затем мы добавляем тень вставки на ячейки таблицы с помощью box-shadow: inset 0 0 0 9999px var(--bs-table-accent-bg); на слой поверх любого указанного background-color. Поскольку мы используем большой разброс и отсутствие размытия, цвет будет монотонным. Так как --bs-table-accent-bg по умолчанию не установлен, у нас нет тени блока по умолчанию.
  • Когда добавляются классы .table-striped, .table-hover или .table-active для --bs-table-accent-bg устанавливается полупрозрачный цвет для раскрашивания фона.
  • Для каждого варианта таблицы мы генерируем цвет --bs-table-accent-bg с самым высоким контрастом в зависимости от этого цвета. Например, основной цвет для .table-primary темнее, а для .table-dark светлее.
  • Цвета текста и границ генерируются одинаково, а их цвета наследуются по умолчанию.

"За кадром" это выглядит так:

@mixin table-variant($state,$background){.table-#{$state}{$color:color-contrast(opaque($body-bg,$background));$hover-bg:mix($color,$background,percentage($table-hover-bg-factor));$striped-bg:mix($color,$background,percentage($table-striped-bg-factor));$active-bg:mix($color,$background,percentage($table-active-bg-factor));--#{$variable-prefix}table-bg:#{$background};--#{$variable-prefix}table-striped-bg:#{$striped-bg};--#{$variable-prefix}table-striped-color:#{color-contrast($striped-bg)};--#{$variable-prefix}table-active-bg:#{$active-bg};--#{$variable-prefix}table-active-color:#{color-contrast($active-bg)};--#{$variable-prefix}table-hover-bg:#{$hover-bg};--#{$variable-prefix}table-hover-color:#{color-contrast($hover-bg)};color:$color;border-color:mix($color,$background,percentage($table-border-factor));}}

Границы таблиц

Таблицы с границами

Добавьте класс .table-bordered для создания границ ячеек и таблицы со всех сторон.

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-bordered"> ...
</table>

Для изменения цвета можно использовать утилиты цвета границы:

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-bordered border-primary"> ...
</table>

Таблица без отображения границ

Добавьте класс .table-borderless для отображения таблицы без рамок.

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-borderless"> ...
</table>
#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-dark table-borderless"> ...
</table>

Маленькие таблицы

Добавьте класс .table-sm чтобы сделать любую таблицу .table более компактной, сократив размер padding пополам.

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-sm"> ...
</table>
#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-dark table-sm"> ...
</table>

Вертикальное выравнивание

Ячейки таблицы <thead> всегда выравниваются по вертикали по нижнему краю. Ячейки таблицы в <tbody> наследуют свое выравнивание от <table> и по умолчанию выравниваются по верхнему краю. Используйте классы вертикального выравнивания для повторного выравнивания там, где это необходимо.

Заголовок 1Заголовок 2Заголовок 3Заголовок 4
Эта ячейка наследует vertical-align: middle; из таблицыЭта ячейка наследует vertical-align: middle; из таблицыЭта ячейка наследует vertical-align: middle; из таблицыЭто текст-заполнитель, предназначенный для того, чтобы занять довольно много места по вертикали, чтобы продемонстрировать, как работает вертикальное выравнивание в предыдущих ячейках.
Эта ячейка наследует vertical-align: bottom; из строки таблицыЭта ячейка наследует vertical-align: bottom; из строки таблицыЭта ячейка наследует vertical-align: bottom; из строки таблицыЭто текст-заполнитель, предназначенный для того, чтобы занять довольно много места по вертикали, чтобы продемонстрировать, как работает вертикальное выравнивание в предыдущих ячейках.
Эта ячейка наследует vertical-align: middle; из таблицыЭта ячейка наследует vertical-align: middle; из таблицыЭта ячейка выровнена по верхнему краю.Это текст-заполнитель, предназначенный для того, чтобы занять довольно много места по вертикали, чтобы продемонстрировать, как работает вертикальное выравнивание в предыдущих ячейках.
<divclass="table-responsive"><tableclass="table align-middle"><thead><tr> ... </tr></thead><tbody><tr> ... </tr><trclass="align-bottom"> ... </tr><tr><td>...</td><td>...</td><tdclass="align-top">Эта ячейка выровнена по верхнему краю.</td><td>...</td></tr></tbody></table></div>

Вложенность

Стили границ, активные стили и варианты таблиц не наследуются вложенными таблицами.

#FirstLastHandle
1MarkOtto@mdo
HeaderHeaderHeader
AFirstLast
BFirstLast
CFirstLast
3Larrythe Bird@twitter
<tableclass="table table-striped"><thead> ... </thead><tbody> ... <tr><tdcolspan="4"><tableclass="table mb-0"> ... </table></td></tr> ... </tbody></table>

Как работает вложение

Чтобы предотвратить попадание каких-либо стилей во вложенные таблицы, мы используем селектор дочернего комбинатора (>) в нашем CSS. Поскольку нам нужно настроить таргетинг на все td и th в thead, tbody и tfoot, наш селектор без него выглядел бы довольно длинным. Таким образом, мы используем немного странно выглядящий селектор .table > :not(caption) > * > * для таргетинга на все td и th в .table, но без воздействия ни на одну из потенциально вложенных таблиц.

Обратите внимание, что если вы добавите <tr> в качестве прямых дочерних элементов таблицы, <tr> по умолчанию будут заключены в <tbody>, таким образом, наши селекторы будут работать так, как задумано.

Опции таблицы

Заголовок таблицы

Подобно светлым и темным таблицам, используйте классы-модификаторы .table-light или .table-dark чтобы сделать заголовки <thead> светлыми или темно-серыми.

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larrythe Bird@twitter
<tableclass="table"><theadclass="table-light"> ... </thead><tbody> ... </tbody></table>
#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larrythe Bird@twitter
<tableclass="table"><theadclass="table-dark"> ... </thead><tbody> ... </tbody></table>

Низ (основание) таблицы

#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larrythe Bird@twitter
FooterFooterFooterFooter
<tableclass="table"><thead> ... </thead><tbody> ... </tbody><tfoot> ... </tfoot></table>

Подпись

<caption> действует как заголовок таблицы. Это помогает пользователям программ чтения с экрана найти таблицу, понять, о чем она, и решить, хотят ли они ее прочитать.

List of users
#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larry the Bird@twitter
<tableclass="table table-sm"><caption>List of users</caption><thead> ... </thead><tbody> ... </tbody></table>

Вы также можете поместить <caption> в начало таблицы с помощью .caption-top.

List of users
#FirstLastHandle
1MarkOtto@mdo
2JacobThornton@fat
3Larrythe Bird@twitter
<tableclass="table caption-top"><caption>List of users</caption><thead><tr><thscope="col">#</th><thscope="col">First</th><thscope="col">Last</th><thscope="col">Handle</th></tr></thead><tbody><tr><thscope="row">1</th><td>Mark</td><td>Otto</td><td>@mdo</td></tr><tr><thscope="row">2</th><td>Jacob</td><td>Thornton</td><td>@fat</td></tr><tr><thscope="row">3</th><td>Larry</td><td>the Bird</td><td>@twitter</td></tr></tbody></table>

«Отзывчивые» таблицы

«Отзывчивые» таблицы позволяют таблицам прокручиваться горизонтально. Сделайте любую таблицу таковой для всех экранов и девайсов, добавив класс .table-responsive в класс .table. Или укажите максимальный брейкпойнт, на котором появится данное свойство таблицы, добавив класс .table-responsive{-sm|-md|-lg|-xl|-xxl}.

Вертикальное обрезание/сокращение

«Отзывчивые» таблицы используют overflow-y: hidden, что «обрезает» любой контент, который существует ниже конца верхних краев таблицы. В частности, это может «срезать» выпадающие меню и другие сторонние виджеты.

Всегда «отзывчиво»

Через каждую контрольную точку используйте .table-responsive для горизонтально прокручиваемых таблиц.

#HeadingHeadingHeadingHeadingHeadingHeadingHeadingHeadingHeading
1CellCellCellCellCellCellCellCellCell
2CellCellCellCellCellCellCellCellCell
3CellCellCellCellCellCellCellCellCell
<divclass="table-responsive"><tableclass="table"> ... </table></div>

Специфика брейкпойнтов (контрольных точек)

Используйте .table-responsive{-sm|-md|-lg|-xl|-xxl} когда необходимо создать адаптивные таблицы до определенной брейкпойнта. До этого значения таблицы будут вести себя как обычные таблицы и не будут прокручиваться горизонтально.

Эти таблицы могут выглядеть неработающими, пока их адаптивные стили не будут применяться при определенной ширине области просмотра.

#HeadingHeadingHeadingHeadingHeadingHeadingHeadingHeading
1CellCellCellCellCellCellCellCell
2CellCellCellCellCellCellCellCell
3CellCellCellCellCellCellCellCell

sm:

#HeadingHeadingHeadingHeadingHeadingHeadingHeadingHeading
1CellCellCellCellCellCellCellCell
2CellCellCellCellCellCellCellCell
3CellCellCellCellCellCellCellCell

md:

#HeadingHeadingHeadingHeadingHeadingHeadingHeadingHeading
1CellCellCellCellCellCellCellCell
2CellCellCellCellCellCellCellCell
3CellCellCellCellCellCellCellCell

lg:

#HeadingHeadingHeadingHeadingHeadingHeadingHeadingHeading
1CellCellCellCellCellCellCellCell
2CellCellCellCellCellCellCellCell
3CellCellCellCellCellCellCellCell

xl:

#HeadingHeadingHeadingHeadingHeadingHeadingHeadingHeading
1CellCellCellCellCellCellCellCell
2CellCellCellCellCellCellCellCell
3CellCellCellCellCellCellCellCell

xxl:

#HeadingHeadingHeadingHeadingHeadingHeadingHeadingHeading
1CellCellCellCellCellCellCellCell
2CellCellCellCellCellCellCellCell
3CellCellCellCellCellCellCellCell
<divclass="table-responsive"><tableclass="table"> ... </table></div><divclass="table-responsive-sm"><tableclass="table"> ... </table></div><divclass="table-responsive-md"><tableclass="table"> ... </table></div><divclass="table-responsive-lg"><tableclass="table"> ... </table></div><divclass="table-responsive-xl"><tableclass="table"> ... </table></div><divclass="table-responsive-xxl"><tableclass="table"> ... </table></div>

Sass

Переменные

$table-cell-padding-y:.5rem;$table-cell-padding-x:.5rem;$table-cell-padding-y-sm:.25rem;$table-cell-padding-x-sm:.25rem;$table-cell-vertical-align:top;$table-color:$body-color;$table-bg:transparent;$table-accent-bg:transparent;$table-th-font-weight:null;$table-striped-color:$table-color;$table-striped-bg-factor:.05;$table-striped-bg:rgba($black,$table-striped-bg-factor);$table-active-color:$table-color;$table-active-bg-factor:.1;$table-active-bg:rgba($black,$table-active-bg-factor);$table-hover-color:$table-color;$table-hover-bg-factor:.075;$table-hover-bg:rgba($black,$table-hover-bg-factor);$table-border-factor:.1;$table-border-width:$border-width;$table-border-color:$border-color;$table-striped-order:odd;$table-group-separator-color:currentColor;$table-caption-color:$text-muted;$table-bg-scale:-80%;

Цикл

$table-variants:("primary":shift-color($primary,$table-bg-scale),"secondary":shift-color($secondary,$table-bg-scale),"success":shift-color($success,$table-bg-scale),"info":shift-color($info,$table-bg-scale),"warning":shift-color($warning,$table-bg-scale),"danger":shift-color($danger,$table-bg-scale),"light":$light,"dark":$dark,);

Кастомизация

  • Факторные переменные ($table-striped-bg-factor, $table-active-bg-factor и $table-hover-bg-factor) используются для определения контраста в вариантах таблиц.
  • Кроме светлого и темного вариантов таблицы, цвета темы осветляются переменной $table-bg-level.
222