Создание адаптивной таблицы. Поворачивать телефон — это крайняя мера

Windows : Internet Explorer 10.0+, Firefox 1.5+, Google Chrome, Opera 9.5+, Safari 3.1+, SeaMonkey 1.0+ [ 1 ] .

Linux : Firefox 1.5+, Google Chrome / Chromium, Opera 9.5+, SeaMonkey 1.0+ [ 2 ] .

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

1 2 3 4 5 6 7 8 9 10
Table_data_1 Table_data_2 Table_data_3 Table_data_4 Table_data_5 Table_data_6 Table_data_7 Table_data_8 Table_data_9 Table_data_10

HTML / XHTML. Код:

<table >

<tr >

<th >1</th >

<th >2</th >

<th >3</th >

<th >4</th >

<th >5</th >

<th >6</th >

<th >7</th >

<th >8</th >

<th >9</th >

<th >10</th >

</tr >

<tr >

<td >Table_data_1</td >

<td >Table_data_2</td >

<td >Table_data_3</td >

<td >Table_data_4</td >

<td >Table_data_5</td >

<td >Table_data_6</td >

<td >Table_data_7</td >

<td >Table_data_8</td >

<td >Table_data_9</td >

<td >Table_data_10</td >

</tr >

</ table >

table {display: block; overflow-x: auto;}

/* Дополнительные CSS, просто для приведения примера к некоему внешнему виду: */

table {border-collapse: collapse;}

table td,th {padding: 10px; border: 1px #000 solid;}

Примечание : CSS свойство display: block делает так, что таблица занимает по ширине только столько пространства, сколько ей нужно, чтобы вместить данные без визуальных искажений. Не больше, не растягиваясь по всей ширине доступного пространства на странице. Даже если в CSS код добавлен width: 100% . Пример:

1 2 3
Table_data_1 Table_data_2 Table_data_3

Aliosque subditos et thema

Существует немало онлайн сервисов для создания sitemap.xml. Однако его можно сделать и самому на своем компьютере, используя браузер lynx и несколько утилит командной строки Linux. Далее описывается пример использующего их bash-скрипта, названного "sitemap.sh". Bash-скрипт, который создает файл sitemap.xml: #!/bin/bash cd /home/me/sitemap/www/ lynx -crawl -traversal -accept_all_cookies -connect_timeout=30 http://www.compmiscellanea.com/ > /dev/null cd /home/me/sitemap/www2/ lynx -crawl -traversal -accept_all_cookies -connect_timeout=30 http://compmiscellanea.com/ > /dev/null cat /home/me/sitemap/www2/traverse.dat >> /home/me/sitemap/www/traverse.dat cat /home/me/sitemap/www/traverse.dat | sed -e "s/\\.//g" | sort | uniq > /home/me/sitemap/sitemap/sitemap.xml sed -i "s/\&/\&\;/g" /home/me/sitemap/sitemap/sitemap.xml sed -i "s/"/\&apos\;/g" /home/me/sitemap/sitemap/sitemap.xml sed -i "s/"/\"\;/g" /home/me/sitemap/sitemap/sitemap.xml sed -i "s/>/\>\;/g" /home/me/sitemap/sitemap/sitemap.xml sed -i "s//" /home/me/sitemap/sitemap/sitemap.xml sed -i -e "s/$/<\/loc><\/url>/" /home/me/sitemap/sitemap/sitemap.xml sed -i -e "1 i \r\r\r\r\r\r" /home/me/sitemap/sitemap/sitemap.xml sed -i -e "$ a \\r" /home/me/sitemap/sitemap/sitemap.xml sed -i "/static/d" /home/me/sitemap/sitemap/sitemap.xml echo "...Done" После того, как файл с bash-скриптом готов: "chmod +x sitemap.sh", что бы сделать его исполняемым. Скачать sitemap.sh в архиве sitemap.sh.tar.gz (После того, как архив загружен и распакован, в файле заменить http://www.compmiscellanea.com/ на нужное доменное имя сайта с "www" и заменить http://compmiscellanea.com/ на нужное доменное имя сайта без "www". Вместо "static" в последней строке файла поставить строку, которую должны содержать ссылки, что бы они были удалены из списка. Затем "chmod +x sitemap.sh". Затем запустить sitemap.sh). Комментарии Скачать sitemap2.sh с построчными комментариями в архиве sitemap2.sh.tar.gz. Перед тем, как запустить bash-скрипт, нужно создать три папки. Так как браузер lynx в каких-то случаях может пропустить некоторые ссылки, если доменное имя сайта будет указано с или без "www", то bash-скрипт запускает lynx дважды, обрабатывая сайт по доменному имени с "www" и обрабатывая сайт по доменному имени без "www". Получающиеся два файла помещаются в две разные папки, здесь это "/home/me/sitemap/www/" и "/home/me/sitemap/www2/". А директория "/home/me/sitemap/sitemap/" предназначена для создаваемого sitemap.xml. 1. Путь к bash #!/bin/bash 2. Переход в папку - браузер lynx поместит туда файлы, полученные при обработке сайта по доменному имени с "www" cd /home/me/sitemap/www/ 3.

В CSS нет свойства "float: bottom", однако эффекта можно добиться и некоторыми другими способами. Пример: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Link 1 Link 2 Link 3 Float bottom HTML / XHTML. Код:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Float bottom
CSS. Код: .box1 {position: relative; top: 0px; left: 0px; float: left; height: auto; width: 100%;} .content1 {position: relative; top: 0px; left: 0px; float: left; height: auto; width: 100%;} .left1 {position: relative; top: 0px; left: 0px; float: left; height: auto; width: 64%;} .menu1 {position: relative; top: 0px; left: 0px; float: left; height: auto; width: 36%;} .bottom1 {position: absolute; bottom: 0px; right: 0px;} /* Дополнительные CSS, просто для приведения примера к некоему внешнему виду */ .box1 {color: #ddd; text-align: center;} .content1 {background: #bbb;} .left1 {min-height: 100px; padding: 2%; text-align: justify; background: #006; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box;} .menu1 {padding: 2%; float: right; background: #060; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box;} .menu1 p {position: relative; top: 0px; left: 0px; float: left; height: auto; width: 100%; padding: 0px; margin: 0px;} .menu1 a {color: #ddd; text-decoration: none;} .menu1 a:hover {text-decoration: underline;} .bottom1 {padding: 2%; color: #eee; background: #600;} Всё содержимое веб-страницы находится в контейнере box1. Внутри него два контейнера div: 1. content1 с собственно содержанием слева и меню справа. 2. bottom1 после content1.

Отобразить объемные данные на маленьком экране — всегда та еще головоломка. Какими способами можно ее решить и как должна выглядеть удобная таблица на мобильном?

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

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

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

Для сложных или объемных текстов, например, в сравнительных таблицах, на узком мобильном экране поместится только 2 колонки. А если таблица заполнена в основном цифрами, столбцы можно сделать уже и, следовательно, уместить больше.

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

Поворачивать телефон — это крайняя мера

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

Чтобы сравнить кредитные карты на сайте Citi, пользователям нужно следовать инструкции: «Поверните свой телефон горизонтально, чтобы продолжить сравнение кредитных карт». При этом при повороте большую часть экрана занимают громадные изображения кредитных карт, которые фиксируются на месте при скроллинге, оставляя совсем мало места для самого содержимого таблицы. Это ошибка многих мобильных сайтов: если на десктопе картинки могут быть хорошим заголовком для столбца, то на мобильном их нужно .

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

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

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

На сайте eBag последняя колонка с товарами обрезана, и пользователи понимают, что доступна горизонтальная прокрутка.

Сайт Subaru использует точки и стрелки над таблицей, показывая пользователям, что доступно еще несколько экранов с контентом. Точки создают некоторую путаницу, потому что две из них выделены, чтобы показать «текущее местоположение» (то есть две видимые сейчас колонки). К тому же, стрелки лучше разместить не над таблицей, а прямо в ней.

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

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

Officeworks.com.au зафиксировали первый столбец с товаром, так что пользователи могут сравнивать с ним все остальные варианты. Товар в первом столбце служит точкой отсчета при сравнении, и пользователи могут заменить его каким-нибудь другим. Стрелки, размещенные прямо в таблице, дают понять, что данные можно прокручивать влево и вправо.

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

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

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

Чтобы увидеть информацию о питательных свойствах Jamba Juice, посетителю нужно выбрать интересующий его напиток, чтобы увидеть информацию о нем. Переключатель «Маленький/Средний/Большой» позволяет выбрать нужный вариант, но не позволяет их сравнивать. Чтобы понять, например, разницу в количестве калорий между маленьким и средним стаканом, пользователь должен сначала запомнить количество калорий для маленького, потом переключиться на средний, посмотреть количество калорий для него и самостоятельно вычесть одно из другого — куча умственной работы, которую большинство людей поленится делать.

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

На сайте Dell пользователи выбирают интересные им технические характеристики продукта в меню вверху страницы. Слева: по умолчанию отображаются все характеристики. В центре: пользователь выбирает нужные. Справа: отображается только то, что он выбрал.

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

  • получить общее представление о типах данных, доступных в таблице;
  • получить прямой доступ к интересующей информации.

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

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

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

Демонстрация адаптивной таблицы .

HTML разметка



























































Имя Фамилия Баллы Баллы Баллы Баллы Баллы Баллы Баллы Баллы Баллы Баллы
Юлия Смирнова 50 50 50 50 50 50 50 50 50 50
Эвелин Яковлева 94 94 94 94 94 94 94 94 94 94
Андрей Петров 67 67 67 67 67 67 67 67 67 67

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

Вы наверное заметили, что я поместил таблицу внутри тега div и очевидно не просто так. Сам по себе тег div ничего не даёт, пока мы не пропишем ему стили.

CSS стили

Задав всего одно свойство, таблица адаптируется , автоматически появится горизонтальная полоса прокрутки, когда содержимое внутри тега div перестанет влезать в текущую ширину экрана по оси X .

Div (
overflow-x: auto;
)

Стилизуем остальные теги таблицы:

Table {
border-collapse: collapse; /* Отображать только одинарные линии */
border-spacing: 0; /* Расстояние между ячейками */
width: 100%;
border: 1px solid #afb42b;
color: #212121;
}

Th, td {
text-align: left;
padding: 8px;
}

Стилизация тега tr (ряд) заслуживает отдельного комментария. Уже стало нормой, когда табличные ряды имеют полосатый вид (зебра). Для этого используется псевдокласс :nth-child со значение в скобочках even . Значение even , всем четным элементам присваивает свойства, в нашем случае – это цвет фона. Таким образом, таблица будет полосатой.

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

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

Первый способ адаптации

<div class = "table-wrap" > <table > <thead > <tr > <th > Услуга</ th > <th > Описание</ th > <th > Цена</ th > <th > Скидка</ th > </ tr > </ thead > <tbody > <tr > <td > Мобильная верстка</ td > <td > Верстка под телефоны</ td > <td > $3000</ td > <td > 50%</ td > </ tr > <tr > <td > Посадка на CMS WordPress</ td > <td > </ td > <td > $3000</ td > <td > 30%</ td > </ tr > </ tbody > </ table > </ div >

Услуга Описание Цена Скидка
Мобильная верстка Верстка под телефоны $3000 50%
Посадка на CMS WordPress Создание сайта с админ. панелью $3000 30%

Стилизуем все это дело (главным образом нам нужно стилизовать table-wrap ).

1 2 3 4 5 6 7 8 9 10 11 12 13 .table-wrap { text-align : center ; display : inline-block; background-color : #fff ; padding : 2rem 2rem; color : #000 ; } .table-wrap { overflow-y: scroll ; } }

Table-wrap { text-align: center; display: inline-block; background-color: #fff; padding: 2rem 2rem; color: #000; } @media screen and (max-width: 600px) { .table-wrap { overflow-y: scroll; } }

В результате, на ширине ДО 600 пикселей таблица будет скроллиться, а сайт нет. Удобно, но сегодня я хотел бы поговорить о другом.
Я нашел еще один интересный подход к адаптивности таблицы. Он заключается в использовании data-атрибутов и псевдоклассов. Сейчас все покажу.

Второй способ адаптации

Для начала поменяем разметку:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Услуга Описание Цена Скидка
Мобильная верстка Верстка под телефоны $3000 50%
Посадка на CMS WordPress Создание сайта с админ. панелью $3000 30%

Услуга Описание Цена Скидка
Мобильная верстка Верстка под телефоны $3000 50%
Посадка на CMS WordPress Создание сайта с админ. панелью $3000 30%

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

Задаем базовые стили:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 body { text-align : center ; padding-top : 10% ; font-family : sans-serif ; background-image : url ("bg.jpg" ) ; background-size: cover; height : 100vh; color : #fff ; } .table-wrap { text-align : center ; display : inline-block; background-color : #fff ; padding : 2rem 2rem; color : #000 ; } table { border : 1px solid #ccc ; width : 100% ; margin : 0 ; padding : 0 ; border-collapse : collapse ; border-spacing : 0 ; } table tr { border : 1px solid #ddd ; padding : 5px ; } table th, table td { padding : 10px ; text-align : center ; border-right : 1px solid #ddd ; } table th { color : #fff ; background-color : #444 ; text-transform : uppercase ; font-size : 14px ; letter-spacing : 1px ; }

body { text-align: center; padding-top: 10%; font-family: sans-serif; background-image: url("bg.jpg"); background-size: cover; height: 100vh; color: #fff; } .table-wrap { text-align: center; display: inline-block; background-color: #fff; padding: 2rem 2rem; color: #000; } table { border: 1px solid #ccc; width: 100%; margin:0; padding:0; border-collapse: collapse; border-spacing: 0; } table tr { border: 1px solid #ddd; padding: 5px; } table th, table td { padding: 10px; text-align: center; border-right: 1px solid #ddd; } table th { color: #fff; background-color: #444; text-transform: uppercase; font-size: 14px; letter-spacing: 1px; }

Выглядит, как обычная таблица, естественно, сдвигая сайт на 320-420 пикселях, мы увидим горизонтальный скролл всего сайта. Не дело.

Как это исправить? добавляем стили:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 @media screen and (max-width: 600px) { table { border : 0 ; } table thead { display : none ; } table tr { margin-bottom : 10px ; display : block ; border-bottom : 2px solid #ddd ; } table td { display : block ; text-align : right ; font-size : 13px ; border-bottom : 1px dotted #ccc ; border-right : 1px solid transparent ; } table td:last-child { border-bottom : 0 ; } table td:before { content : attr(data-label) ; float : left ; text-transform : uppercase ; font-weight : bold ; } }

@media screen and (max-width: 600px) { table { border: 0; } table thead { display: none; } table tr { margin-bottom: 10px; display: block; border-bottom: 2px solid #ddd; } table td { display: block; text-align: right; font-size: 13px; border-bottom: 1px dotted #ccc; border-right: 1px solid transparent; } table td:last-child { border-bottom: 0; } table td:before { content: attr(data-label); float: left; text-transform: uppercase; font-weight: bold; } }

Здесь мы сделали строки таблицы блочными, удалили названия столбцов, а текст самих столбцов выровняли по правому краю. В свою очередь при помощи псевдокласса :before мы присоединяем к левому краю наши дата-атрибуты. Выходит так:

Вот еще пен:

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

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

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

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

Будут ли люди сравнивать данные в колонках или строках?

Пример 1. Люди не будут сравнивать данные

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

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

Именно это сделали создатели сайта JQuery Mobile.

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

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

Рис. 3. Таблица с данными, которые подлежат сравнению

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

Рис. 4. Таблица с данными на экране мобильного телефона

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

Рис. 5. Таблица с данными в полной версии сайта

Рис. 6 и 7. Та же таблица в мобильной версии. Остались только самые важные столбцы, но при необходимости можно включить все остальные.

Какая информация - важная?

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

  • какая информация нужна людям больше всего?
  • какие колонки - самые важные для понимания той информации, которую предоставляет таблица?
  • какие колонки скорее всего будут нужны людям?

Смогут ли пользователи отличить одну часть таблицы от другой?

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

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

Должно ли все быть на экране одновременно, или можно добавить дополнительные элементы в случае необходимости?

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

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

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

Итак, что имеет значение, когда речь идет о таблицах в адаптивном дизайне?

  • Поймут ли пользователи значение таблицы, даже если ее внешний вид будет меняться?
  • Смогут ли они каким-то образом получить всю информацию, которая есть в таблице?
  • Уверены ли Вы, что все URL доступны вне зависимости от устройства?

Если Вы можете ответить «да» на все три вопроса, значит, на Вашем сайте нет проблем с таблицами.

Ваш контент подскажет, что лучше всего делать с таблицами.

Есть множество различных способов разместить таблицы в адаптивном дизайне. Со временем их станет еще больше. Но каким образом выбрать правильный способ? Ответ может быть только один.

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

Советы