Сайт

Таблица на сайте: Как создать таблицу в HTML5 и указать её параметры через стили?

17.04.2023

Содержание

Как создать таблицу в HTML5 и указать её параметры через стили?

Тема:Таблицы

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
8.0+1.0+4.0+1.0+1.0+1.0+1.0+

Задача

Создать таблицу и указать её параметры (поля и расстояние между ячейками) через стили.

Решение

Таблица состоит из строк и столбцов ячеек, которые могут содержать текст и рисунки. Для добавления таблицы на веб-страницу используется тег <table>. Этот элемент служит контейнером для элементов, определяющих содержимое таблицы. Любая таблица состоит из строк и ячеек, которые задаются соответственно с помощью тегов <tr> и <td>. Таблица должна содержать хотя бы одну ячейку (пример 1). Допускается вместо тега <td> использовать тег <th>. Текст в ячейке, оформленной с помощью тега <th>, отображается браузером шрифтом жирного начертания и выравнивается по центру ячейки. В остальном, разницы между ячейками, созданными через теги <td> и <th> нет.

Пример 1. Создание таблицы

HTML5IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Тег table</title>
 </head>
 <body>
  <table border="1">
   <tr>
    <th>Ячейка 1</th>
    <th>Ячейка 2</th>
   </tr>
   <tr>
    <td>Ячейка 3</td>
    <td>Ячейка 4</td>
  </tr>
 </table>
 </body>
</html>

Порядок расположения ячеек и их вид показан на рис. 1.

Рис. 1. Результат создания таблицы с четырьмя ячейками

Атрибут border тега <table> допустимо добавлять только с пустым значением (<table border>) или равным 1. Все остальные значения не проходят валидацию.

Для управления полями внутри ячеек используется стилевое свойство padding, которое добавляется к селектору td. Расстояние между ячейками меняется свойством border-spacing (пример 2) добавляемым к селектору table, браузер IE понимает его только с версии 8.

0.

Пример 2. Поля внутри ячеек

HTML5CSS 2.1IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Тег table</title>
  <style>
   table {
    width: 100%; /* Ширина таблицы */
    background: white; /* Цвет фона таблицы */
    color: white; /* Цвет текста */
    border-spacing: 1px; /* Расстояние между ячейками */
   }
   td, th {
    background: maroon; /* Цвет фона ячеек */
    padding: 5px; /* Поля вокруг текста */
   }
  </style>
 </head> 
 <body>
  <table>
   <tr><th>Заголовок 1</th><th>Заголовок 2</th></tr>
   <tr><td>Ячейка 3</td><td>Ячейка 4</td></tr>
  </table>
 </body>
</html>

Таблица с полями и расстоянием между ячейками показана на рис. 2. Аналогичного результата можно добиться и с помощью рамки белого цвета вокруг ячеек.

Рис. 2. Поля в ячейках таблицы

таблицыHTML5

Создание таблиц в HTML.

Все о HTML таблицах

В HTML для создания таблиц используются теги группы table. К ним относятся:

  • <table> — тег обвертка таблицы;
  • <tr> — тег строки (ряда) таблицы;
  • <td> — тег обычной ячейки таблицы;
  • <th> — тег ячейки-заголовка таблицы;
  • <col> — тег колонки таблицы;
  • <colgroup> — тег группы колонок таблицы;
  • <thead> — тег верхнего колонтитула таблицы;
  • <tbody> — тег основной части таблицы;
  • <tfoot> — тег нижнего колонтитула таблицы;
  • <caption> — тег подписи таблицы.

Каждому из этих тегов посвящена отдельная страница в нашем справочнике. Перейти на нее вы можете нажав по названию тега.

Далее будет рассмотрена практика создания HTML таблиц с примером исходного кода и описанием на русском языке.

Простая HTML таблица

Чтобы создать простую таблицу HTML достаточно 3 тега: <table>, <tr> и <td>.

Тег <table> является корневым контейнером таблицы. Все содержимое таблицы должно находится внутри него.

Далее необходимо определить строки и ячейки — структуру таблицы.

В HTML таблицах строка (ряд) <tr> является контейнером для ячеек. Колонки таблицы определяются позицией ячеек: первая ячейка <td> внутри строки <tr> будет в первой колонке, второй элемент <td> — во второй колонке и так далее.

Для разделения таблицы на колонтитулы (об этом ниже) и основную часть, как обвертку строк <tr> основной части таблицы используют тег <tbody>. Его использование не обязательно в простых таблицах, однако некоторые браузеры и HTML редакторы добавляют его автоматически, поэтому в примерах ниже мы также будем его использовать. Если ваша таблица не имеет колонтитулов, вы можете не использовать тег <tbody>.

Пример простой таблицы HTML

Ячейка 1 Ячейка 2 Ячейка 3
Ячейка 4 Ячейка 5 Ячейка 6
Ячейка 7 Ячейка 8 Ячейка 9

Исходный код простой таблицы HTML

<table>
<tbody>
<tr>
<td>Ячейка 1</td>
<td>Ячейка 2</td>
<td>Ячейка 3</td>
</tr>
<tr>
<td>Ячейка 4</td>
<td>Ячейка 5</td>
<td>Ячейка 6</td>
</tr>
<tr>
<td>Ячейка 7</td>
<td>Ячейка 8</td>
<td>Ячейка 9</td>
</tr>
</tbody>
</table>

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

В HTML таблицах существует 2 типа ячеек. Тег <td> определяет ячейку обычного типа. Если ячейка выполняет роль заголовка, она определяется с помощью тега <th>.

Для наглядности в примерах далее мы будем использовать конкретные ситуации, где можно применять те или иные возможности HTML таблиц.

Пример HTML таблицы с заголовком th

Volkswagen AG Daimler AG BMW Group
Audi Mercedes-Benz BMW
Skoda Mercedes-AMG Mini
Lamborghini Smart Rolls-Royce

Исходный код таблицы HTML с заголовками th

<table>
<tbody>
<tr>
<th>Volkswagen AG</th>
<th>Daimler AG</th>
<th>BMW Group</th>
</tr>
<tr>
<td>Audi</td>
<td>Mercedes-Benz</td>
<td>BMW</td>
</tr>
<tr>
<td>Skoda</td>
<td>Mercedes-AMG</td>
<td>Mini</td>
</tr>
<tr>
<td>Lamborghini</td>
<td>Smart</td>
<td>Rolls-Royce</td>
</tr>
</tbody>
</table>

Объединение ячеек в таблице HTML

В HTML таблицах есть возможность объединить ячейки по горизонтали и вертикали.

Чтобы объединить ячейки по горизонтали используйте атрибут colspan=»х«, у ячейки <td> или <th>, где x — количество ячеек для объединения.

Чтобы объединить ячейки по вертикали используйте атрибут rowspan=»х«, у ячейки <td> или <th>, где x — количество ячеек для объединения.

Ячейки можно объединять по горизонтали и вертикали одновременно. Для этого используйте оба атрибута colspan и rowspan для нужной ячейки:

<td colspan="3" rowspan="2">Текст ячейки</td>

Обратите внимание на то, что при объединении ячеек меняется количество элементов в строке <tr>. Например, если в таблице 3 колонки с ячейками <td>, и мы объединяем первую и вторую ячейку, то всего внутри тега <tr>, определяющего данную строку будет 2 элемента <td>, первый из них будет содержать атрибут colspan=»2″.

Пример HTML таблицы с объединением ячеек

Nissan
Модель
Комплектация Наличие
Nissan Qashqai VISIA +
TEKNA +
Nissan X-Trail ACENTA +
CONNECTA

Исходный код таблицы HTML с объединенными ячейками

<table>
<tbody>
<tr>
<th colspan="3">Nissan</th>
</tr>
<tr>
<th>Модель</th>
<th>Комплектация</th>
<th>Наличие</th>
</tr>
<tr>
<td rowspan="2">Nissan Qashqai</td>
<td>VISIA</td>
<td>+</td>
</tr>
<tr>
<td>TEKNA</td>
<td>+</td>
</tr>
<tr>
<td rowspan="2">Nissan X-Trail</td>
<td>ACENTA</td>
<td>+</td>
</tr>
<tr>
<td>CONNECTA</td>
<td>-</td>
</tr>
</tbody>
</table>

Колонтитулы и подпись в HTML таблицах

HTML таблицы можно поделить на 3 области: верхний колонтитул, основная часть, нижний колонтитул.

Делается это при помощи обвертки строк <tr> выбранной части таблицы тегами. <thead> определяет область верхнего колонтитула, <tfoot> — область нижнего колонтитулы, <tbody> — основную часть таблицы.

По умолчанию, колонтитулы не отличаются стилями (это можно сделать через CSS при необходимости), но могут быть использованы браузерами. Например, при печати многостраничной таблицы колонтитулы могут дублироваться на каждой напечатанной странице.

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

По необходимости к таблице можно добавить подпись. Для этого используйте тег <caption>.

Подпись <caption>, при использовании, ставится сразу после открывающего тега <table>.

Пример HTML таблицы с колонтитулами и подписью

Комплектации Renault Sandero Stepway
Характеристика SUTA 09H 6R SUTA 09HR6R SUTA 15H 5R
Наличие + + +
Мощность двигателя 0,9 (90 л.
с.)
0,9 (90 л.с.) 1,5 (90 л.с.)
Топливо бензин бензин дизель
Норма токсичности Евро-6 Евро-6 Евро-5

Исходный код таблицы с колонтитулами и подписью

<table>
<caption>Комплектации Renault Sandero Stepway</caption>
<thead>
<tr>
<th>Характеристика</th>
<th>SUTA 09H 6R</th>
<th>SUTA 09HR6R</th>
<th>SUTA 15H 5R</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Наличие</th>
<td>+</td>
<td>+</td>
<td>+</td>
</tr>
</tfoot>
<tbody>
<tr>
<th>Мощность двигателя</th>
<td>0,9 (90 л.с.)</td>
<td>0,9 (90 л.с.)</td>
<td>1,5 (90 л. с.)</td>
</tr>
<tr>
<th>Топливо</th>
<td>бензин</td>
<td>бензин</td>
<td>дизель</td>
</tr>
<tr>
<th>Норма токсичности</th>
<td>Евро-6</td>
<td>Евро-6</td>
<td>Евро-5</td>
</tr>
</tbody>
</table>

Колонки и группы колонок

HTML таблицу можно делить на колонки и группы колонок с помощью тегов <col> и <colgroup>.

Такое разделение позволяет задать стили для таблицы используя минимальное количество CSS свойств, тем самым уменьшая объем кода таблицы (вместо определения стилей для каждой ячейки колонки, можно задать стили для одной или нескольких колонок сразу).

Теги <col>и <colgroup> ставятся внутри тега <table> перед тегами <thead>, <tfoot>, <tbody>, <tr> и после тега <caption>.

Оба тега могут определять стили для одной или нескольких колонок. Атрибут span=»число«, указывает количество колонок, на которые будет влиять тег. Если атрибут span не указан, его значение приравнивается к единице.

Теги <col> и <colgroup> похожи друг на друга, однако тег <colgroup> позволяет использование вложенных тегов <col>, таким образом можно задать стили группе колонок через <colgroup> и конкретной колонке внутри группы через элемент <col> (см. пример ниже).

Если внутри <colgroup> есть вложенные теги <col>, то атрибут span у тега <colgroup> не ставится, а количество колонок на которые влияет тег определяется вложенными <col> элементами.

Пример HTML таблицы с разделением на колонки

ZEN 2E2C AL A ZEN 2E2C J5 A INTENSE 2E3C AL A Характеристика
1.5 (90 л.с.) 1.2 (115 л.с.) 1.5 (90 л.с.) Мощность двигателя
дизель бензин дизель Топливо
АКП6 (EDC) АКП6 (EDC) АКП6 (EDC) Трансмиссия

Исходный код таблицы HTML c <col> и <colgroup>

<table>
<colgroup>
<col>
<col>
<col>
</colgroup>
<tbody>
<tr>
<th>ZEN 2E2C AL A</th>
<th>ZEN 2E2C J5 A</th>
<th>INTENSE 2E3C AL A</th>
<th>Характеристика</th>
</tr>
<tr>
<td>1. 5 (90 л.с.)</td>
<td>1.2 (115 л.с.)</td>
<td>1.5 (90 л.с.)</td>
<th>Мощность двигателя</th>
</tr>
<tr>
<td>дизель</td>
<td>бензин</td>
<td>дизель</td>
<th>Топливо</th>
</tr>
<tr>
<td>АКП6 (EDC)</td>
<td>АКП6 (EDC)</td>
<td>АКП6 (EDC)</td>
<th>Трансмиссия</th>
</tr>
</tbody>
</table>

Таблицы в макете страниц сайта

На современных сайтах немаловажно корректное отображение страниц как на компьютерах, так и на мобильных устройствах. Использовать таблицы для создания каркаса HTML страницы не целесообразно, так как теряется возможность адаптирования контента под экрыны разного размера (компьютеры, смартфоны, планшеты).

Теги группы Table лучше использовать внутри страницы для отображения контента табличного формата.

Отличные примеры таблиц данных, представленных на веб-сайтах

Цифровая информация и данные бывают разных типов и в разных пропорциях. Их организация требует особого мастерства.

Хорошая организация веб-контента и текста оказывает большее влияние на пользователей. Читатели могут просмотреть огромное количество информации и с легкостью ее понять.

Использование таблиц данных — отличный способ организации данных, особенно больших наборов информации.

Таблицы данных — это хорошие элементы дизайна пользовательского интерфейса, которые обеспечивают структуру множества веб-данных. Это позволяет пользователям сканировать, фильтровать, анализировать и принимать меры в отношении важной информации.

Чтобы дать больше идей о том, как использовать таблицы данных на веб-сайтах, вот несколько замечательных примеров таблиц данных. Есть также советы о том, как его спроектировать.

Общее использование таблиц данных

Таблица данных имеет множество функций, но обычно она используется для:

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

Советы по разработке таблиц данных

Создайте таблицу с несколькими функциями.

Источник изображения

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

Привязка контекстного содержимого при прокрутке.

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

Приоритет общих действий.

Источник изображения

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

Включить фильтры данных.

Фильтры из таблицы сравнения продуктов, созданной с помощью wpDataTables

Предоставление пользователям возможности манипулировать и фильтровать данные помогает им находить необходимую информацию. Они также изучают новые идеи и могут сравнивать данные.

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

Источник изображения

 

Горизонтальная прокрутка хорошо работает с таблицами данных с большим количеством информации и столбцов. Пользователи также могут иметь возможность привязывать определенные столбцы для лучшего сравнения данных.

Поставить нумерацию страниц для длинных таблиц.

Пример разбивки на страницы в таблице, созданной с помощью wpDataTables

Избегайте длинных таблиц данных, разделяя их на несколько страниц с фиксированным количеством строк и разбиением на страницы. Разрешите пользователям также настраивать количество строк, отображаемых на каждой странице.

Разбивка на страницы указывает, на какой странице они находятся, для удобства навигации.

Сделать строки таблицы расширяемыми.

Источник изображения

Другим дизайнерским решением для таблиц, содержащих объемные данные, является расширение строк таблицы. Расширяемые или сворачиваемые строки позволяют пользователям читать дополнительную информацию, сохраняя при этом контекст таблицы.

Использовать настраиваемые столбцы.

Они позволяют пользователям управлять веб-контентом и выбирать определенные столбцы данных, необходимые им для выполнения задачи. Это также улучшает пользовательский опыт.

Пользователи также должны иметь возможность создавать и сохранять предустановленные столбцы для использования в будущем.

14 отличных примеров дизайна пользовательского интерфейса таблицы данных

Адаптивная таблица цен


Эта таблица данных имеет простой и современный дизайн. Он идеально подходит для представления тарифных планов для подписок.

Эта таблица CSS3 бесплатна и проста в использовании. Это также настраиваемый .

Пользователи могут изменять текст и цвет для улучшения внешнего вида.

DataTables Пример JSON с использованием Material Design

Эта таблица данных материалов идеально подходит для создания офисной базы данных . Он содержит разбиение на страницы и элементы управления поиском , а также возможность добавления дополнительных профилей .

Таблица данных также позволяет пользователям упорядочивать и сортировать данные по возрастанию и убыванию .

Фиксированный заголовок таблицы

Эта таблица данных CSS от Nikhil Krishnan имеет фиксированный заголовок , столбцов без полей и элемент управления вертикальной прокруткой .

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

Таблица сведений о питании в HTML и CSS

Следующий пример таблицы данных показывает таблицу данных CSS, в которой представлены сведений о питании продукта питания. Внешний вид похож на 9.0018 этикетка продукта .

Пользователи могут настроить таблицу данных в соответствии с питательной ценностью продукта. Однако заполнение может занять некоторое время.

Адаптивная таблица

Этот пример таблицы данных, разработанный Джеффом Юэном , имеет современный дизайн и настраиваемую цветовую схему .

Таблица HTML содержит расширяемых строк и столбцов. Таким образом, данные могут поместиться в каждой ячейке таблицы, когда окно либо сжато, либо растянуто.

Таблица Crisp

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

Он также имеет простой дизайн и чистый макет с белыми границами столбцов, что позволяет легко просматривать определенный элемент таблицы, если вы хотите.

Стиль прокрутки (перевернутые заголовки)

Это отличный пример таблицы данных с параметром горизонтальной прокрутки .

В отличие от других таблиц данных, ее заголовок привязан к первому столбцу. Это помогает пользователям избежать потери контекста при прокрутке столбцов данных.

Таблица данных имеет очень простой дизайн и помимо текстов, она также принимает ввод, например emojis .

< Table > Responsive

Этот адаптивный дизайн таблицы данных от Pablo Garcia включает 3D-эффект наведения , когда пользователь указывает на ячейку таблицы. Он также выделяет строку находящейся в ячейке таблицы.

Цвета строк чередуются для удобства чтения. Таблица данных имеет темную цветовую схему с розовыми акцентами, что делает ее идеальной для футуристических веб-тем .

Таблица данных Fade and Blur on Hover

Эта таблица данных JavaScript, созданная Jack Rugile , содержит эффект Fade and Blur on Hover , когда пользователи указывают на строку.

Эффект выделяет и обеспечивает больший фокус на наведенной строке. Он делает это, размывая оставшиеся строки.

Таблица данных имеет простую структуру и серую цветовую схему.

Адаптивная и доступная таблица данных


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

Строки таблицы чередуются белым и серым цветом для лучшей читаемости. Заголовок и границы имеют ярко выраженный зеленый цвет.

Tablexeperementation


В примере показано расписание гонки с зум при наведении . Строка масштабируется до , когда пользователи наводят курсор на строку, и возвращается к исходной форме, когда указатель перемещается.

Таблица данных CSS имеет столбцы без полей для более широкого пространства данных. Он также имеет чередующиеся цвета строк для удобства чтения.

Дизайн материалов — адаптивная таблица


Эта таблица данных CSS3 имеет простую компоновку и чистый белый дизайн. Они дополняют цветовую подсветку при наведении курсора ..

Имеет функцию конструктора таблиц . Это позволяет пользователям настраивать цвет выделения строки, включать эффект наведения и отображать границы таблицы.

Несколько столбцов, много строк


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

Те, кто структурирует данные в список, могут извлечь выгоду из этого дизайна.

Responstable 2.0: адаптивное решение для таблиц


В этом примере таблицы данных имеется столбец из кнопок выбора , которые можно использовать для создания форм .

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

Часто задаваемые вопросы о таблицах данных

Что такое DataTable?

По определению, таблица данных — это отображение информации в табличной форме с именованными строками и/или столбцами.

Существуют различные плагины JS и WordPress, которые помогут вам создать его онлайн, и Microsoft Excel, когда дело доходит до работы локально. Мы рекомендуем wpDataTables.

Какие существуют типы таблиц данных?

Таблицы данных бывают двух типов: простые и многомерные.

Простая таблица:
Таблица, созданная с помощью wpDataTables
Многомерная таблица:
Таблица, созданная с помощью wpDataTables

Что такое статистические таблицы?

Таблица представляет собой расположение данных в строках и столбцах или сложную структуру. Таблицы обычно используются в общении, исследованиях и анализе данных. Недавно мы создали статью о статистических таблицах. Проверьте это.

Заканчивая размышления об этих замечательных примерах таблиц данных

Использование таблицы данных — отличный способ организовать большую часть веб-контента . Это не только улучшает визуальный дизайн и макет веб-страницы, но также улучшает взаимодействие с пользователем .

Таблицы данных позволяют пользователям просматривать информацию и помогают в проведении анализа.

При разработке таблицы данных важно предоставить пользователям контроль над содержимым. Предоставление им возможности манипулировать и фильтровать данные в соответствии со своими потребностями делает таблицу более полезной.

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

Если вам понравилось читать эту статью о примерах таблиц данных, вы должны прочитать эту о том, как создать таблицу данных.

Мы также написали о нескольких связанных темах, таких как примеры таблиц цен, альтернативы DataTables, библиотека таблиц JavaScript, сравнительные таблицы, статистические таблицы, как создать таблицу в WordPress без плагина, как вставить таблицу в WordPress, таблица цен WordPress плагины и как создавать статистические таблицы в WordPress.

Шаблоны проектирования таблиц в Интернете — Smashing Magazine

  • Чтение: 11 мин.
  • CSS, JavaScript, Шаблоны проектирования, Адаптивный дизайн
  • Поделиться в Twitter, LinkedIn
Об авторе

Чен Хуэй Цзин — дизайнер-самоучка и разработчик, безмерно любящий CSS. Сокращение строк кода в ее веб-проектах делает ее очень счастливой. Она … Больше о Huijing ↬

Таблицы – это шаблон проектирования для отображения больших объемов данных в строках и столбцах, который, похоже, еще не вышел из моды, поэтому давайте посмотрим, как мы можем создавать таблицы в Интернете в 2019 году..

Таблицы — это шаблон проектирования для отображения больших объемов данных в строках и столбцах, что делает их эффективными для сравнительного анализа категориальных объектов. Таблицы использовались для этой цели еще во 2 -м и -м веках, и когда мир начал переходить на цифровые технологии, таблицы пришли вместе с нами.

То, что Интернет будет поддерживать отображение данных в табличном формате, было неизбежно. Таблицы HTML представляют табличные данные семантически и структурно соответствующим образом. Однако стили по умолчанию для HTML-таблиц — не самая эстетичная вещь, которую вы когда-либо видели. В зависимости от желаемого визуального дизайна требовались некоторые усилия на стороне CSS, чтобы украсить эти таблицы. Десять лет назад в журнале Smashing Magazine была опубликована статья «10 лучших дизайнов таблиц CSS», и она по сей день продолжает получать много трафика.

Интернет сильно изменился за последнее десятилетие, и сейчас удобнее, чем когда-либо, адаптировать свой сайт или приложение к области просмотра, в которой он просматривается. При этом мы должны продолжать делать продуманный выбор дизайна, который не компромисс по доступности. Поскольку таблицы, похоже, в ближайшее время не потеряют популярности, давайте посмотрим, как можно создавать таблицы в Интернете в 2019 году.

Больше после прыжка! Продолжить чтение ниже ↓

Параметры только с CSS

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

К сожалению, без помощи JavaScript для некоторых манипуляций с DOM на фронте специальных возможностей у нас есть только несколько опций только для CSS. Но для небольших наборов данных их часто бывает достаточно.

Вариант 1: Ничего не делать

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

Таблица с несколькими столбцами и большим количеством строк, отображаемая на узком и широком экранах (большой предварительный просмотр)

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

См. Pen Table #1: Мало столбцов, много строк (Chen Hui Jing) на CodePen.

См. Pen Table #1: Мало столбцов, много строк (Chen Hui Jing) на CodePen.

Этот тип шаблона работает лучше всего, если ваши данные сами по себе не являются строками и строками текста. Если они числовые или короткие фразы, вы, вероятно, можете обойтись без особых действий.

Вариант 2: Стиль прокрутки

Дэвид Бушелл описал свою методику для адаптивных таблиц еще в 2012 году, которая включала вызов переполнения и предоставление пользователям возможности прокрутки, чтобы увидеть больше данных. Можно возразить, что это не совсем отзывчивое решение, но технически контейнер реагирует на ширину окна просмотра.

При оформлении таблиц разрешайте пользователям прокручивать их, чтобы увидеть больше данных. (Большой предварительный просмотр)

Сначала рассмотрим «базовое» переполнение. Представьте, что я использую воздушные кавычки вокруг основного, потому что стиль для прокручивающихся теней совсем не такой. Тем не менее, в данном случае «базовый» относится к тому факту, что таблица никак не трансформируется.

См. таблицу Pen Table #3: Стиль прокрутки (базовый) от Chen Hui Jing на CodePen.

См. Таблицу перьев № 3: Стиль прокрутки (базовый) Чен Хуэй Цзин на CodePen.

Эта техника прокрутки теней принадлежит Роме Комарову и Леа Веру, которые перенимают идеи друг друга для создания волшебства. Он основан на использовании нескольких градиентов (линейных и радиальных) в качестве фоновых изображений для содержащего элемента и использовании background-attachment: local для позиционирования фона относительно его содержимого.

Что хорошо в этом методе, так это то, что для браузеров, которые не поддерживают прокручивающиеся тени, вы все равно можете прокручивать таблицу как обычно. Это совершенно не нарушает планировку.

Другим вариантом прокрутки может быть переворачивание заголовков таблицы из конфигурации строк в конфигурацию столбцов с применением горизонтальной прокрутки к содержимому элемента . Этот метод использует поведение Flexbox для преобразования строк таблицы в столбцы.

См. таблицу Pen Table #3: Стиль прокрутки (перевернутые заголовки) Чен Хуэй Цзин на CodePen.

См. Pen Table #3: Стиль прокрутки (перевернутые заголовки) Чен Хуэй Цзин на CodePen.

Применяя display: flex к таблице, он делает и гибкими дочерними элементами, которые по умолчанию располагаются рядом друг с другом на одной гибкой линии.

Мы также делаем элемент flex-контейнером, таким образом делая все дочерние flex-элементы внутри него также размещенными в одной flex-линии. Наконец, для каждой ячейки таблицы должно быть установлено значение 9.0317 блок вместо стандартной ячейки таблицы .

Преимущество этого метода заключается в том, что заголовки всегда видны, как эффект фиксированного заголовка, поэтому пользователи не теряют контекст при прокрутке столбцов данных. Следует отметить, что этот метод приводит к несоответствию визуального и исходного порядка, и это делает вещи немного неинтуитивными.

Посыпать некоторым JavaScript

Как упоминалось ранее, параметры макета, включающие преобразование таблицы путем изменения отображают значения , которые иногда имеют негативные последствия для доступности, для устранения которых требуются небольшие манипуляции с DOM.

Кроме того, Эндрю Койл дает ряд полезных советов по разработке таблиц данных, включая такие функции, как нумерация страниц, сортировка, фильтрация и т.  д. (функции, для включения которых требуется некоторый JavaScript).

Если вы работаете с относительно простым набором данных, возможно, вы захотите написать свои собственные функции для некоторых из этих функций.

Ряды в блоки, с исправлением доступности

Насколько мне известно, этот метод адаптивных таблиц данных появился из статьи CSS-Tricks «Адаптивные таблицы данных» Криса Койера еще в 2011 году. С тех пор он был адаптирован и расширен. на многих других.

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

Сворачивание строк в блоки (Большой предварительный просмотр)

На узком экране заголовки таблиц визуально скрыты, но все еще существуют в дереве доступности. Применяя атрибуты данных к ячейкам таблицы, мы можем затем отображать метки для данных с помощью CSS, сохраняя при этом содержимое метки в HTML. Обратитесь к CodePen ниже, чтобы узнать, как выглядят разметка и стили:

См. Pen Table #2: Rows to block by Chen Hui Jing на CodePen.

См. Pen Table #2: Rows to Blocks от Chen Hui Jing на CodePen.

Исходный метод применяет ширину к псевдоэлементу, отображающему текст метки, но это означает, что вам нужно знать размер места, с которого должна начинаться ваша метка. В приведенном выше примере используется несколько иной подход, при котором метка и данные находятся на противоположных сторонах содержащего их блока.

Мы можем добиться такого эффекта с помощью автоматических полей в контексте гибкого форматирования. Если мы установим свойство display для каждого элемента на flex, поскольку псевдоэлементы генерируют блоки, как если бы они были непосредственными дочерними элементами исходного элемента, они становятся flex дочерними элементами .

После этого нужно установить margin-right: auto для псевдоэлемента, чтобы подтолкнуть содержимое ячейки к дальнему краю ячейки.

Другой подход к созданию макета узкого окна просмотра заключается в использовании комбинации Grid и display:contents . Обратите внимание, что display:contents в поддерживаемых браузерах в настоящее время имеет проблемы с доступностью, и этот метод не следует использовать в рабочей среде, пока эти ошибки не будут исправлены.

Но, возможно, вы читаете это после того, как эти ошибки были устранены, в таком случае вот альтернативный вариант макета.

См. Pen Table #2: Rows to blocks (alt) Chen Hui Jing на CodePen.

См. Pen Table #2: Rows to blocks (alt) Chen Hui Jing на CodePen.

Каждому элементу присваивается значение display: grid , а каждому элементу присваивается значение display: content . Только непосредственные дочерние элементы контейнера сетки участвуют в контексте форматирования сетки; в данном случае это элемент .

Когда display:contents применяется к , он «заменяется» своим содержимым, в данном случае псевдоэлементом и 9Вместо этого 0317 внутри становятся дочерними элементами сетки.

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

В будущем, когда значения размеров min-content , max-content и fit-content (охватываемые CSS Intrinsic & Extrinsic Sizing Module Level 3) будут поддерживаться как общие ширина и высота значения, у нас будет еще больше возможностей для размещения вещей.

Недостатком этого подхода является то, что вам нужны дополнительные или

вокруг содержимого в ячейке таблицы, если его еще не было, иначе не было бы возможности применить стили к нему.

В этом примере показана базовая реализация разбивки на страницы, которая была изменена на основе этого CodePen Гьором Милевски для разбиения на страницы строк таблицы вместо элементов div. Это расширение примера «стилизации прокрутки», рассмотренного в предыдущем разделе.

См. Pen Table #4: Simple pagination Chen Hui Jing на CodePen.

См. Pen Table #4: Simple pagination Chen Hui Jing на CodePen.

С точки зрения компоновки Flexbox очень удобен для позиционирования элементов разбивки на страницы в различных размерах окна просмотра. Различные дизайны проектов будут иметь разные требования, но универсальность Flexbox должна позволить вам соответствующим образом учитывать эти различия.

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

Мы можем сделать это, используя свойство order . Визуальное изменение порядка содержимого всегда должно выполняться с учетом того, что это свойство , а не изменяет исходный порядок — только то, как оно отображается на экранах.

Простая сортировка

В этом примере показана базовая реализация сортировки, модифицированная на основе этого фрагмента кода Питером Ноублом для обработки как текста, так и цифр:

См. Pen #Table 5: Simple sorting by Chen Hui Jing на CodePen.

См. Pen #Table 5: Simple sort by Chen Hui Jing на CodePen.

Было бы полезно иметь какой-то индикатор того, какой столбец сортируется в данный момент и в каком порядке. Мы можем сделать это, добавив классы CSS, которые затем можно стилизовать по своему усмотрению. В этом случае символы индикатора представляют собой псевдоэлементы, которые переключаются при нажатии на целевой заголовок.

Простой поиск

Этот пример представляет собой базовую функцию фильтрации, которая перебирает все текстовое содержимое каждой ячейки таблицы и применяет класс CSS для скрытия всех строк, которые не соответствуют полю ввода поиска.

См. таблицу Pen Table #6: Простая фильтрация от Chen Hui Jing на CodePen.

См. Pen Table #6: Simple filtering Chen Hui Jing на CodePen.

Такая реализация относительно наивна, и если ваш вариант использования требует этого, вместо этого может иметь смысл выполнять поиск по столбцам. В этом случае было бы неплохо иметь каждое поле ввода как часть таблицы в соответствующих столбцах.

Пусть с этим справится библиотека

Приведенные выше фрагменты кода JavaScript служат для демонстрации того, как можно улучшить таблицы с большими объемами данных, чтобы облегчить жизнь пользователям этих таблиц. Но с действительно большими наборами данных, возможно, имеет смысл использовать существующую библиотеку для управления большими таблицами.

Шаблон переключения столбцов — это способ, при котором несущественные столбцы скрываются на небольших экранах. Обычно я не сторонник скрытия контента только потому, что область просмотра узкая, но этот подход Мэгги Костелло Вакс из Filament Group решает эту мою проблему, предоставляя раскрывающееся меню, которое позволяет пользователям переключать скрытые столбцы обратно в вид.

Вышеупомянутая статья была опубликована еще в 2011 году, но с тех пор Filament Group разработала полный набор плагинов для адаптивных таблиц, известных как Tablesaw, которые включают такие функции, как сортировка, выбор строк, интернационализация и т. д.

Функция переключения столбцов в TableSaw также больше не зависит от jQuery, в отличие от примеров из исходной статьи. Tablesaw — одна из единственных библиотек, которые я смог найти и которая на данный момент не зависит от jQuery.

Подведение итогов

Существует множество шаблонов проектирования таблиц, и выбор подхода во многом зависит от типа имеющихся у вас данных и целевой аудитории для этих данных. В конце концов, таблицы — это метод организации и представления данных.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *