
Октябрь 25, 2019 Запись была обновлена
Красивые таблицы на CSS +Видео

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

Первая таблица, которую мы создадим.
Пример меню можно увидеть здесь:
Посмотреть примерСкачать
HTML часть
HTML каркас не содержит в себе ничего нового. Он выглядит следующим образом:
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 | <table cellspacing="0"> <tr> <th>Lorem ipsum</th> <th>Lorem ipsum</th> <th>Lorem ipsum</th> </tr> <tr> <td>Etiam dolor</td> <td>100%</td> <td>Нет</td> </tr> <tr> <td>Etiam dolor</td> <td>100%</td> <td>Да</td> </tr> <tr> <td>Etiam dolor</td> <td>50%</td> <td>Да</td> </tr> <tr> <td>Etiam dolor</td> <td>0%</td> <td>Да</td> </tr> <tr> <td>Etiam dolor</td> <td>100%</td> <td>Да</td> </tr> </table> |
CSS часть
Сейчас добавим стили нашей таблице:
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 | table { overflow:hidden; border:1px solid #d3d3d3; background:#fefefe; width:70%; margin:5% auto 0; -moz-border-radius:5px; /* FF1+ */ -webkit-border-radius:5px; /* Saf3-4 */ border-radius:5px; -moz-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2); -webkit-box-shadow: 0 0 4px rgba(0, 0, 0, 0.2); } th, td { padding:18px 28px 18px; text-align:center; } th { padding-top:22px; text-shadow: 1px 1px 1px #fff; background:#e8eaeb; } td { border-top:1px solid #e0e0e0; border-right:1px solid #e0e0e0; } tr.odd-row td { background:#f6f6f6; } td.first, th.first { text-align:left } td.last { border-right:none; } td { background: -moz-linear-gradient(100% 25% 90deg, #fefefe, #f9f9f9); background: -webkit-gradient(linear, 0% 0%, 0% 25%, from(#f9f9f9), to(#fefefe)); } tr.odd-row td { background: -moz-linear-gradient(100% 25% 90deg, #f6f6f6, #f1f1f1); background: -webkit-gradient(linear, 0% 0%, 0% 25%, from(#f1f1f1), to(#f6f6f6)); } th { background: -moz-linear-gradient(100% 20% 90deg, #e8eaeb, #ededed); background: -webkit-gradient(linear, 0% 0%, 0% 20%, from(#ededed), to(#e8eaeb)); } tr:first-child th.first { -moz-border-radius-topleft:5px; -webkit-border-top-left-radius:5px; /* Saf3-4 */ } tr:first-child th.last { -moz-border-radius-topright:5px; -webkit-border-top-right-radius:5px; /* Saf3-4 */ } tr:last-child td.first { -moz-border-radius-bottomleft:5px; -webkit-border-bottom-left-radius:5px; /* Saf3-4 */ } tr:last-child td.last { -moz-border-radius-bottomright:5px; -webkit-border-bottom-right-radius:5px; /* Saf3-4 */ } |
Подсветка строки при наведении

Пример меню можно увидеть здесь:
Посмотреть примерСкачать
HTML часть
Эта таблица немного больше прошлой, но структура очень похожа:
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | <table class="bordered"> <thead> <tr> <th>№</th> <th>Top 10 фильмов</th> <th>Год</th> </tr> </thead> <tr> <td>1</td> <td>Побег из Шоушенка</td> <td>1994</td> </tr> <tr> <td>2</td> <td>Крестный отец</td> <td>1972</td> </tr> <tr> <td>3</td> <td>Крестный отец: Часть II</td> <td>1974</td> </tr> <tr> <td>4</td> <td>Хороший, плохой, злой</td> <td>1966</td> </tr> <tr> <td>5</td> <td>Криминальное чтиво</td> <td>1994</td> </tr> <tr> <td>6</td> <td>12 разгневанных мужчин</td> <td>1957</td> </tr> <tr> <td>7</td> <td>Список Шиндлера</td> <td>1993</td> </tr> <tr> <td>8</td> <td>Пролетая над гнездом кукушки</td> <td>1975</td> </tr> <tr> <td>9</td> <td>Темный рыцарь</td> <td>2008</td> </tr> <tr> <td>10</td> <td>Властелин колец: Возвращение Короля</td> <td>2003</td> </tr> </table> |
CSS часть
Стили немного другие, потому что нам необходимо изменить цвет строки при наведении:
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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | .bordered { border: solid #ccc 1px; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; -webkit-box-shadow: 0 1px 1px #ccc; -moz-box-shadow: 0 1px 1px #ccc; box-shadow: 0 1px 1px #ccc; } .bordered tr:hover { background: #fbf8e9; -o-transition: all 0.1s ease-in-out; -webkit-transition: all 0.1s ease-in-out; -moz-transition: all 0.1s ease-in-out; -ms-transition: all 0.1s ease-in-out; transition: all 0.1s ease-in-out; } .bordered td, .bordered th { border-left: 1px solid #ccc; border-top: 1px solid #ccc; padding: 10px; text-align: left; } .bordered th { background-color: #dce9f9; background-image: -webkit-gradient(linear, left top, left bottom, from(#ebf3fc), to(#dce9f9)); background-image: -webkit-linear-gradient(top, #ebf3fc, #dce9f9); background-image: -moz-linear-gradient(top, #ebf3fc, #dce9f9); background-image: -ms-linear-gradient(top, #ebf3fc, #dce9f9); background-image: -o-linear-gradient(top, #ebf3fc, #dce9f9); background-image: linear-gradient(top, #ebf3fc, #dce9f9); -webkit-box-shadow: 0 1px 0 rgba(255,255,255,.8) inset; -moz-box-shadow:0 1px 0 rgba(255,255,255,.8) inset; box-shadow: 0 1px 0 rgba(255,255,255,.8) inset; border-top: none; text-shadow: 0 1px 0 rgba(255,255,255,.5); } .bordered td:first-child, .bordered th:first-child { border-left: none; } .bordered th:first-child { -moz-border-radius: 6px 0 0 0; -webkit-border-radius: 6px 0 0 0; border-radius: 6px 0 0 0; } .bordered th:last-child { -moz-border-radius: 0 6px 0 0; -webkit-border-radius: 0 6px 0 0; border-radius: 0 6px 0 0; } .bordered th:only-child{ -moz-border-radius: 6px 6px 0 0; -webkit-border-radius: 6px 6px 0 0; border-radius: 6px 6px 0 0; } .bordered tr:last-child td:first-child { -moz-border-radius: 0 0 0 6px; -webkit-border-radius: 0 0 0 6px; border-radius: 0 0 0 6px; } .bordered tr:last-child td:last-child { -moz-border-radius: 0 0 6px 0; -webkit-border-radius: 0 0 6px 0; border-radius: 0 0 6px 0; } |
Тем, кому лень писать код самостоятельно!
Существует специальный сервис, который позволяет генерировать стили для таблиц, лишь передвигая ползунки. Я сделал видео об этом сервисе, которое находится ниже. Сервис находится по ссылке — tablestyler.com (был найден новый сервис и ссылка обновлена 2 июня 2017 года). На видео идет видеообзор старого сервиса, но и с новым вы разберетесь 🙂 .
Вывод
Обязательно возьмите данную статью себе на заметку, потому что очень часто приходится оформлять таблицы, а с помощью последнего сервиса это можно сделать очень быстро и красиво :).
Успехов!
Спасибо за ваше обращение!
Мы свяжемся с вами в течение 2-х часов (график работы: пн-пт, с 10 до 19)
Отличная статья! 🙂 Оказывается, CSS это не страшно, а легко, просто и красиво 😳
Спасибо. Ну конечно в этом нет ничего сложного. А с помощью сервиса сделать красивую таблицу еще более просто 🙂 .
А куда конкретно css вставлять?
CSS необходимо вставлять в ваш файл стилей. Обычно он называется «style.css».
Интересная статья, спасибо. А этот сервис не слишком ли код делает тяжелым ?
Код получается очень даже неплохой, поэтому можете смело его использовать.
Красиво, красиво…сам к себе на сайт запилил такой стиль) очень таки неплохо, спасибо за статью
Я рад что Вам понравился стиль!
Спасибо за статью, всё работает. Единственное, вы не указали в статье что необходимо скрипт подключать, пришлось из примера вытаскивать.
Предоставленный сервис просто находка — за несколько минут сварганил стиль таблицы как раз такой какой мне надо
Таблица очень красивая, но можете подсказать как ее адаптировать под мобильную версию сайта?
Добрый день, Антонина!
В CSS необходимо задать в процентах ширину таблицы и ширину колонок.
Спасибо за исходники и за сервис генерации таблиц.)))
Стили браузера по умолчанию отображают таблицу и ее ячейки без видимых границ и фона, при этом ячейки внутри таблицы не прилегают вплотную друг к другу. С помощью CSS-стилей можно красиво оформить таблицу в соответствии с ее содержимым. пожалуйста ?? согласна, с помощью css3 можно делать крутые штуки, почитайте спецификацию и посмотрите примеры на сайте. да и таблицы в вёрстке уже не используются, только для размещения табличных данных.
Что-то не выделяется строка при наведении на нее курсора.