CSS-стили для таблиц

Набор CSS-стилей для разных вариантов стилизации HTML-таблиц через CSS-классы с примерами их использования.

Таблица HTML 5

Структура таблицы в HTML:

<table>
    <caption>Заголовок таблицы</caption>
    <thead>
        <tr>
            <th></th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td></td>
        </tr>
    </tbody>
</table>

Атрибуты:

  • rowspan - объединение рядов ячеек
  • colspan - объединение колонок ячеек

Стили для таблиц

Набор данных стилей позволить нам легко управлять внешним видом таблиц:

:root {
    --table-color: #212529;
    --table-bg-striped: rgba(0, 0, 0, 0.05);
    --table-bg-hover: rgba(0, 0, 0, 0.075);
}
table {
    caption-side: bottom;
    border-collapse: collapse;
}
caption {
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    color: #6c757d;
    text-align: left;
}
th {
    text-align: inherit;
    text-align: -webkit-match-parent;
}
thead, tbody, tfoot, tr, td, th {
    border-color: inherit;
    border-style: solid;
    border-width: 0;
}
.table {
    width: 100%;
    margin-bottom: 1rem;
    color: var(--table-color);
    vertical-align: top;
    border-color: #dee2e6;
}
.table > :not(caption) > * > * {
    padding: 0.5rem 0.5rem;
    background-color: transparent;
    border-bottom-width: 1px;
    box-shadow: inset 0 0 0 9999px transparent;
}
.table > tbody {
    vertical-align: inherit;
}
.table > thead {
    vertical-align: bottom;
}
.table-group-divider {
    border-top: 2px solid currentcolor;
}
.caption-top {
    caption-side: top;
}
.table-sm > :not(caption) > * > * {
    padding: 0.25rem 0.25rem;
}
.table-bordered > :not(caption) > * {
    border-width: 1px 0;
}
.table-bordered > :not(caption) > * > * {
    border-width: 0 1px;
}
.table-borderless > :not(caption) > * > * {
    border-bottom-width: 0;
}
.table-borderless > :not(:first-child) {
    border-top-width: 0;
}
.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: var(--table-bg-striped);
    color: var(--table-color);
}
.table-striped-columns > :not(caption) > tr > :nth-child(2n) {
    background-color: var(--table-bg-striped);
    color: var(--table-color);
}
.table-active {
    background-color: rgba(0, 0, 0, 0.1);
    color: var(--table-color);
}
.table-hover > tbody > tr:hover > * {
    background-color: var(--table-bg-hover);
    color: var(--table-color);
}
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

Примеры стилизации таблиц

Таблица на всю ширину

<table class="table">
  ...
</table>
# Имя Фамилия Ник
1 Иван Иванов @vano
2 Пётр Петров @ptrp
3 Анонимный чел @switter

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

<table class="table table-bordered">
  ...
</table>
# Имя Фамилия Ник
1 Иван Иванов @vano
2 Пётр Петров @ptrp
3 Анонимный чел @switter

Таблица без бордера

<table class="table table-borderless">
  ...
</table>
# Имя Фамилия Ник
1 Иван Иванов @vano
2 Пётр Петров @ptrp
3 Анонимный чел @switter

Таблица с полосатыми рядами

<table class="table table-striped">
  ...
</table>
# Имя Фамилия Ник
1 Иван Иванов @vano
2 Пётр Петров @ptrp
3 Анонимный чел @switter

Таблица с полосатыми столбцами

<table class="table table-striped-columns">
  ...
</table>
# Имя Фамилия Ник
1 Иван Иванов @vano
2 Пётр Петров @ptrp
3 Анонимный Чел @switter

Наводимые ряды

<table class="table table-hover">
  ...
</table>
# Имя Фамилия Ник
1 Иван Иванов @vano
2 Пётр Петров @ptrp
3 Анонимный чел @switter

Заголовок таблицы сверху

<table class="table caption-top">
    <caption>Заголовок таблицы</caption>
    <thead>
        ...
    </thead>
    <tbody>
        ...
    </tbody>
</table>
Заголовок таблицы
# Имя Фамилия Ник
1 Иван Иванов @vano
2 Пётр Петров @ptrp
3 Анонимный Чел @switter

Адаптивные таблицы (Таблица с прокруткой)

Адаптивные таблицы позволяют с легкостью прокручивать таблицы по горизонтали. Сделайте любую таблицу отзывчивой во всех окнах просмотра, обернув тег <table></table> div с классом .table-responsive.

<div class="table-responsive">
  <table class="table">
    ...
  </table>
</div>
# Заголовок Заголовок Заголовок Заголовок Заголовок Заголовок Заголовок Заголовок Заголовок Заголовок Заголовок Заголовок
1 Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка
2 Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка
3 Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка Клетка

Стили лайфхаки

:first-child :last-child :last-of-type :first-of-type

Все кроме первого столбца

tr > :not(:first-child) {
    text-align: center;
}

По порядковому номеру

Первая, третья и четвёртая ячейки:

.table tbody td:nth-child(1),
.table tbody td:nth-child(3),
.table tbody td:nth-child(4) {
  text-align: center;
}
Сортировка значений в таблице
Сортировка значений в таблице Как реализовать сортировку данных в HTML-таблице на сайте. Сделате таблицу сортируемой при клике по заголовку колонки просто добавив атрибут data-sort="sort_table" в тег table, а так же добавьте готовый скрипт.
Таблица в HTML 5
Таблица в HTML 5 Структура и тэги таблицы согласно стандарту в HTML-5: заголовок таблицы, шапка и футер, тело таблицы, ряды и ячейки. Объединение ячеек таблицы.
Таблица с липкой шапкой
Таблица с липкой шапкой Инструкция как сделать липкую шапку таблицы без использования JavaScript и без jQuery. Фиксированные заголовки таблицы сделанные на чистом CSS.
Комментарии 0

*** чтобы писать комментарии.