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

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

Таблица — удобный и один из самых эффективных способов подачи ТЕКСТОВОЙ информации: на минимуме пространства размещено максимум данных. И что не менее важно — эти данные доступны не только для восприятия, но и для анализа (СРАВНЕНИЯ). Основная сложность таблиц при верстке — их адаптивность для устройств с небольшими экранами (мобильных девайсов). Можно ли сделать так, чтобы даже на экране с размерами в несколько сантиметров таблицы могли быть удобными для восприятия?

В статье будет предложен способ адаптации таблиц к разным экранам разных устройств. Кроме того, этот способ будет реализован на практике с применением Vue.js 3, CSS-модулей и компонентно-ориентированного подхода.

Содержание

  • Структура таблицы

  • Цветовая дифференциация

  • Проблема с Mobile First

  • Что делать с таблицами на маленьких экранах?

  • Back to the Future Forward to the Past, или что будем улучшать

  • Mobile First или Desktop First? Без разницы!

  • Подготовка к работе, Vue.js

  • Структура проекта и нейминг

  • CSS-модули

  • Компонентно-ориентированный подход

  • API компонента адаптивной таблицы

  • Классический вид таблицы

  • Делаем таблицу адаптивной

  • Если много колонок

  • Движущаяся шапка адаптивной таблицы

Структура таблицы

Таблица состоит из столбцов и строк. Первая, самая верхняя строка — шапка таблицы. Т.е. ЗАГОЛОВКИ столбцов. Важно отметить, что первый столбец, как правило, играет не менее важную роль, т.к. в его ячейках — информация, которую можно обозначить как ЗАГОЛОВКИ строк.

Таблица может быть усложнена (что, как ни парадоксально, не усложняет, а наоборот, упрощает ее восприятие):

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

  • кроме заголовков строк в первом столбце, во втором могут быть подзаголовки этих строк

  • для улучшения восприятия ячейки с одинаковыми данными могут быть объединены как по горизонтали, так и по вертикали

Пример таблицы с шапкой из двух строк, двумя заголовками строк (title + subtitle) и объединенными ячейками
Пример таблицы с шапкой из двух строк, двумя заголовками строк (title + subtitle) и объединенными ячейками

Цветовая дифференциация

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

Добавление цветного фона для шапки и заголовков строк делает таблицу более удобной для восприятия
Добавление цветного фона для шапки и заголовков строк делает таблицу более удобной для восприятия

При наличии границ восприятие информации также улучшает центрирование в ячейках. И еще один приятный для глаз момент — наличие отступов, по крайней мере вертикальных (оптимальный вариант, на мой взгляд — от 0.25em до 0.5em). Да, и при этом (наличии отступов) межстрочный интервал в ячейках не должен быть таким же большим, как у обычных параграфов.

Проблема с Mobile First

Основная проблема, почему таблицы исчезли с сайтов — очень небольшая ширина мобильных экранов, особенно в portrait-ориентации. Часто заголовки строк состоят из нескольких слов, и поэтому достаточно длинны, и все что остается — один-два столбца с данными, которые не умещаются в ширину экрана при нормальном (читаемом) размере шрифта.

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

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

Недостатков такого подхода множество. Самые главные из них:

  • карточки — это “мусор” в дизайне: на странице — множество повторяющихся элементов, которых могло бы и не быть (правая часть списков под подзаголовками Subtitles, которые мешают восприятию)

  • карточки занимают много места: на экране мобильного устройства видно очень немного карточек без скролла — две, максимум три; чтобы ознакомиться со всей информацией, нужно пролистывать страницу вверх или вниз

  • самое главное — теряется уникальное преимущество таблиц — анализ, СРАВНЕНИЕ данных, которые были до этого представлены в ячейках компактно, рядом друг с другом

Реальный пример «карточного подхода» — страница конфигуратора Mercedes модели C-класса (https://www.mercedes-benz.co.uk/passengercars/mercedes-benz-cars/car-configurator.html/motorization/CCci/GB/en/C-KLASSE/LIMOUSINE). В полноэкранном режиме на большом мониторе полностью видны только 6 карточек, на экран мобильного телефона с трудом за один раз помещаются только две. А всего их 19!
Реальный пример «карточного подхода» — страница конфигуратора Mercedes модели C-класса (https://www.mercedes-benz.co.uk/passengercars/mercedes-benz-cars/car-configurator.html/motorization/CCci/GB/en/C-KLASSE/LIMOUSINE). В полноэкранном режиме на большом мониторе полностью видны только 6 карточек, на экран мобильного телефона с трудом за один раз помещаются только две. А всего их 19!

Что делать с таблицами на маленьких экранах?

Есть один подход к таблицам, который мне нравится. Скорее всего кто-нибудь это придумал давным-давно, и я “изобрел велосипед”, просто не видел такого воплощения адаптивной верстки таблиц. Смысл подхода заключается в том, что на широких экранах пользователь видит классическую таблицу, а на узких — заголовки (и подзаголовки) строк трансформируются в эдакие “подшапки” таблицы.

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

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

Forward to the Past, или что будем улучшать

Благодаря Генри Форду и его первой конвейерной линии, созданной в 1913 году, в производстве практически всех товаров появился конвейер. Подход Тойоты к организации процесса — канбан (1959 год) — стал основой для agile-методологии, которая очень популярна в IT-индустрии. Автопроизводители всегда стремились быть первооткрывателями во многих сферах (еще один показательный пример забыл — product placement с «Бондиадой» в кино). Ну или хотя бы брали на вооружение передовые технологии. Предлагаю в качестве примера рассмотреть то, что нам предлагают автомобильные бренды в интернете (примечание — с российским автобизнесом сейчас, мягко говоря... все не так однозначно, поэтому примеры я искал на сайтах .uk, потому что там английский язык)

Представим, что мы хотим купить новый автомобиль. Мы определились с маркой, моделью, и даже примерно представляем чем отличаются версии, в которых эта модель производится. Мы понимаем, двигатель какой мощности и объема нас устраивает, и какого типа коробку передач мы хотим. Наше желание — ПРИЦЕНИТЬСЯ, т.е. понять разброс цен в зависимости от перечисленных выше условий. У всех автопроизводителей есть конфигураторы, но, чтобы понять, насколько отличается цена, в этих конфигураторах нужно совершать множество действий, переходить по шагам/этапам и пр. Чтобы прицениться, определить порядок цен, есть один действенный инструмент — прайс-лист. Попробуем найти его на сайтах и посмотреть, можно ли его как-то улучшить.

Начать я решил с Volkswagen Passat, потому что когда-то ездил на такой машине. Но на английском оф. сайте этого бренда я вообще не увидел прайс-листов! Ок, новый Passat проектирует дизайн-команда Skoda, рассмотрим «младшего брата» из Чехии — Superb. Для сравнения рассмотрим американскую альтернативу — Ford Mondeo, и японскую — Toyota Corolla. Прайс-листы для этих моделей на английских сайтах нашлись, но! — все они почему-то представлены в формате pdf.

Две страницы (21-я и 22-я) pdf-файла (https://www.skoda.co.uk/_doc/71165c49-62c5-4f74-b29a-be6ad40d7373), на который ведет ссылка «BROCHURE & PRICELIST» со страницы https://www.skoda.co.uk/new-cars/superb/hatch-se
Две страницы (21-я и 22-я) pdf-файла (https://www.skoda.co.uk/_doc/71165c49-62c5-4f74-b29a-be6ad40d7373), на который ведет ссылка «BROCHURE & PRICELIST» со страницы https://www.skoda.co.uk/new-cars/superb/hatch-se
Две страницы (8-я и 9-я) pdf-файла (https://s3-eu-west-1.amazonaws.com/liveassets.toyotaretail.co.uk/price-list/010791_VPL_CVPL_JUNE_68_PAGES.pdf#page=8), на который ведет ссылка “View Brochure” со страницы https://www.toyota.co.uk/new-cars/corolla-hatchback
Две страницы (8-я и 9-я) pdf-файла (https://s3-eu-west-1.amazonaws.com/liveassets.toyotaretail.co.uk/price-list/010791_VPL_CVPL_JUNE_68_PAGES.pdf#page=8), на который ведет ссылка “View Brochure” со страницы https://www.toyota.co.uk/new-cars/corolla-hatchback
4-я страница прайс-листа из pdf-файла https://www.ford.co.uk/content/dam/guxeu/uk/documents/price-list/cars/PL-Mondeo_2019.pdf, доступного по ссылке “Brochures & Price Lists” со страницы https://www.ford.co.uk/cars/mondeo
4-я страница прайс-листа из pdf-файла https://www.ford.co.uk/content/dam/guxeu/uk/documents/price-list/cars/PL-Mondeo_2019.pdf, доступного по ссылке “Brochures & Price Lists” со страницы https://www.ford.co.uk/cars/mondeo

Я не представляю, как эти pdf-прайсы изучать на экране мобильного телефона с шириной <10 см. Мало того, даже если распечатать их на большом листе бумаге, можно заметить, что сделаны эти таблицы совсем не идеально. Попробуем использовать современные возможности веба. А в качестве рабочего примера я возьму Ford, отдав таким образом дань благодарности основателю компании за его замечательную книгу “Моя жизнь, мои достижения” (рекомендую к прочтению).

Чем меньше таблица, тем лучше

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

  • примечание к “CO₂ Emissions” гласит «...Эти цифры могут не отражать реальные результаты вождения... Для получения дополнительной информации... обратитесь к нашему разделу „Топливо и производительность“.» Раз это есть в другом разделе и не относится к стоимости — убираем столбец

  • примечания к столбцам “Monthly BIK” — “не для частных покупателей”, поэтому тоже их убираем

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

  • разделим данные по категориям Bodystyle. Не совсем понятные значения “4 door” и “5 door” заменим на “Saloon” и “Hatchback” из той же брошюры, итоговые категории будут [‘Saloon / Hatchback’, ‘Estate’]

  • в каждой категории сделаем интерактивный выбор “Price: [‘Basic Retail’, ‘incl. Vat’, ’+ Manufacturers’]”

И немного переформатируем таблицу:

Для интерактивных выборов «Body: Saloon / Hatchback» и «Price: Basic Retail» таблица в классическом представлении может выглядеть так
Для интерактивных выборов «Body: Saloon / Hatchback» и «Price: Basic Retail» таблица в классическом представлении может выглядеть так

Mobile First или Desktop First? Без разницы!

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

Источник: https://habr.com/ru/post/680976/


Интересные статьи

Интересные статьи

Но если для интернет-магазина, разработанного 3–4 года назад «современные» ошибки вполне простительны потому что перед разработчиками «в те далекие времена» не стояло таких задач, то в магазинах, сдел...
Принято считать, что персонализация в интернете это магия, которая создается сотнями серверов на основе БигДата и сложного семантического анализа контента.
Каждый лишний элемент на сайте — это кнопка «Не купить», каждая непонятность или трудность, с которой сталкивается клиент — это крестик, закрывающий в браузере вкладку с вашим интернет-магазином.
Один из самых острых вопросов при разработке на Битрикс - это миграции базы данных. Какие же способы облегчить эту задачу есть на данный момент?
Основанная в 1998 году компания «Битрикс» заявила о себе в 2001 году, запустив первый в России интернет-магазин программного обеспечения Softkey.ru.