Здравствуйте уважаемые читатели! При просомтре таблиц с большим количеством строк и столбцов бывает сложно отследить какие данные относятся к конкретной строке. Поэтому чтобы улучшить восприятие информации пользователями сайта и повысить юзабилити, можно использовать чередование фонового цвета в строках таблицы, либо в кнопках навигационного меню.
С появлением CSS3 эффекта чередования фонового цвета можно добиться исключительно средствами CSS, не изменяя HTML-разметки документа. Для этого используется псевдокласс nth-child , который позволяет выбрать все четные или нечетные элементы, используя значения odd — нечетные или even — четные элементы, либо числовое выражение an+b , где a и b целые числа, а n счетчик, который принимает значения 0, 1, 2... и так далее. Перейдем от теории к практике.
Допустим у Вас на сайте есть какая-то большая таблица. Например таблица футбольного чемпионата:
М | Команда | И | В | Н | П | Заб | Проп | О |
1 | Зенит | 30 | 20 | 7 | 3 | 58 | 17 | 67 |
2 | ЦСКА | 30 | 19 | 3 | 8 | 67 | 27 | 60 |
3 | Краснодар | 30 | 17 | 9 | 4 | 52 | 27 | 60 |
4 | Динамо | 30 | 14 | 8 | 8 | 53 | 36 | 50 |
5 | Рубин | 30 | 13 | 9 | 8 | 39 | 33 | 48 |
6 | Спартак | 30 | 12 | 8 | 10 | 42 | 42 | 44 |
7 | Локомотив | 30 | 11 | 10 | 9 | 31 | 25 | 43 |
8 | Мордовия | 30 | 11 | 5 | 14 | 22 | 43 | 38 |
9 | Терек | 30 | 10 | 7 | 13 | 30 | 30 | 37 |
10 | Кубань | 30 | 8 | 12 | 10 | 32 | 36 | 36 |
11 | Амкар | 30 | 8 | 8 | 14 | 25 | 42 | 32 |
12 | Уфа | 30 | 7 | 10 | 13 | 26 | 39 | 31 |
13 | Урал | 30 | 9 | 3 | 18 | 31 | 44 | 30 |
14 | Ростов | 30 | 7 | 8 | 15 | 27 | 51 | 29 |
15 | Торпедо | 30 | 6 | 11 | 13 | 28 | 45 | 29 |
16 | Арсенал Тула | 30 | 7 | 4 | 19 | 20 | 46 | 25 |
HTML-код таблицы с минимальным оформлением:
table {
border-collapse: collapse;
margin: 0px auto;
}
th, td {
border: solid 1px #000;
padding: 5px;
}
М | Команда | И | В | Н | П | Заб | Проп | О |
1 | Зенит | 30 | 20 | 7 | 3 | 58 | 17 | 67 |
2 | ЦСКА | 30 | 19 | 3 | 8 | 67 | 27 | 60 |
3 | Краснодар | 30 | 17 | 9 | 4 | 52 | 27 | 60 |
4 | Динамо | 30 | 14 | 8 | 8 | 53 | 36 | 50 |
5 | Рубин | 30 | 13 | 9 | 8 | 39 | 33 | 48 |
6 | Спартак | 30 | 12 | 8 | 10 | 42 | 42 | 44 |
7 | Локомотив | 30 | 11 | 10 | 9 | 31 | 25 | 43 |
8 | Мордовия | 30 | 11 | 5 | 14 | 22 | 43 | 38 |
9 | Терек | 30 | 10 | 7 | 13 | 30 | 30 | 37 |
10 | Кубань | 30 | 8 | 12 | 10 | 32 | 36 | 36 |
11 | Амкар | 30 | 8 | 8 | 14 | 25 | 42 | 32 |
12 | Уфа | 30 | 7 | 10 | 13 | 26 | 39 | 31 |
13 | Урал | 30 | 9 | 3 | 18 | 31 | 44 | 30 |
14 | Ростов | 30 | 7 | 8 | 15 | 27 | 51 | 29 |
15 | Торпедо | 30 | 6 | 11 | 13 | 28 | 45 | 29 |
16 | Арсенал Тула | 30 | 7 | 4 | 19 | 20 | 46 | 25 |
Таблица имеет много строк и столбцов и при однородном фоне ее тяжело просматривать. Для улучшения восприятия здесь как раз поможет чередование фонового цвета у четных и нечетных строк . Для этого добавляем следующий CSS-код:
tbody tr:nth-child (odd) {
background-color: #C9E4F6;/* фон нечетных строк */
}
tbody tr:nth-child (even) {
background-color: #B4DAF2;/* фон четных строк */
}
Результат:
М | Команда | И | В | Н | П | Заб | Проп | О |
1 | Зенит | 30 | 20 | 7 | 3 | 58 | 17 | 67 |
2 | ЦСКА | 30 | 19 | 3 | 8 | 67 | 27 | 60 |
3 | Краснодар | 30 | 17 | 9 | 4 | 52 | 27 | 60 |
4 | Динамо | 30 | 14 | 8 | 8 | 53 | 36 | 50 |
5 | Рубин | 30 | 13 | 9 | 8 | 39 | 33 | 48 |
6 | Спартак | 30 | 12 | 8 | 10 | 42 | 42 | 44 |
7 | Локомотив | 30 | 11 | 10 | 9 | 31 | 25 | 43 |
8 | Мордовия | 30 | 11 | 5 | 14 | 22 | 43 | 38 |
9 | Терек | 30 | 10 | 7 | 13 | 30 | 30 | 37 |
10 | Кубань | 30 | 8 | 12 | 10 | 32 | 36 | 36 |
11 | Амкар | 30 | 8 | 8 | 14 | 25 | 42 | 32 |
12 | Уфа | 30 | 7 | 10 | 13 | 26 | 39 | 31 |
13 | Урал | 30 | 9 | 3 | 18 | 31 | 44 | 30 |
14 | Ростов | 30 | 7 | 8 | 15 | 27 | 51 | 29 |
15 | Торпедо | 30 | 6 | 11 | 13 | 28 | 45 | 29 |
16 | Арсенал Тула | 30 | 7 | 4 | 19 | 20 | 46 | 25 |
Можно сделать акцент на столбцы оформив вертикальную зебру . Для этого используется все тот же псевдокласс nth-child и применяем его к элементам td . А при наведении на строку выделять ее цветом с помощью псевдокласса hover:
td:nth-child (odd) {
background-color: #C9E4F6;/* фон нечетных столбцов */
}
td:nth-child (even) {
background-color: #B4DAF2;/* фон четных столбцов */
}
tr:hover td{
background: #B4FFF2;/* фон строки при наведении */
}
Результат:
М | Команда | И | В | Н | П | Заб | Проп | О |
1 | Зенит | 30 | 20 | 7 | 3 | 58 | 17 | 67 |
2 | ЦСКА | 30 | 19 | 3 | 8 | 67 | 27 | 60 |
3 | Краснодар | 30 | 17 | 9 | 4 | 52 | 27 | 60 |
4 | Динамо | 30 | 14 | 8 | 8 | 53 | 36 | 50 |
5 | Рубин | 30 | 13 | 9 | 8 | 39 | 33 | 48 |
6 | Спартак | 30 | 12 | 8 | 10 | 42 | 42 | 44 |
7 | Локомотив | 30 | 11 | 10 | 9 | 31 | 25 | 43 |
8 | Мордовия | 30 | 11 | 5 | 14 | 22 | 43 | 38 |
9 | Терек | 30 | 10 | 7 | 13 | 30 | 30 | 37 |
10 | Кубань | 30 | 8 | 12 | 10 | 32 | 36 | 36 |
11 | Амкар | 30 | 8 | 8 | 14 | 25 | 42 | 32 |
12 | Уфа | 30 | 7 | 10 | 13 | 26 | 39 | 31 |
13 | Урал | 30 | 9 | 3 | 18 | 31 | 44 | 30 |
14 | Ростов | 30 | 7 | 8 | 15 | 27 | 51 | 29 |
15 | Торпедо | 30 | 6 | 11 | 13 | 28 | 45 | 29 |
16 | Арсенал Тула | 30 | 7 | 4 | 19 | 20 | 46 | 25 |
Тоже самое можно сделать и для списков. В статье мы сделали несколько вариантов горизонтального меню. Вот одно из них:
Это меню можно немного оживить с помощью чередования фонового цвета у соседних пунктов. Для этого нужно всего лишь добавить одну строчку кода:
ul#menu li:nth-child (odd) {
background-color: #01638D;/* фон нечетных пунктов меню */
}
Результат:
Полный код меню:
#menu, #menu li {
margin: 0;
padding: 0;
}
#menu {
text-align: center;
background: #03658e;
}
#menu li{
display:inline-block;
text-align: center;
width: 20%;
}
#menu a {
display: block;
padding: 5px 15px;
color: #fff;
font-size:150%;
text-decoration: none;
}
#menu a:hover {
background: #8AB8CC;
}
#menu li:nth-child (odd) {
background: #278CB7;/* фон нечетных пунктов меню */
}
Псевдокласса nth-child позволяет применять различные свойства не только к четным или нечетным элементам, но и к конкретным элементам. Так, например, если необходимо изменить цвет шрифта только в первом пункте списка, то поможет следующее CSS правило:
li:nth-child (1){
color:orange;
}
Если надо выделить все строки таблицы начиная с третьей то достаточно такой строчки:
tr:nth-child (n + 3){
background-color: silver;
}
Можно выделить какой-то диапазон, например с четвертого по седьмой:
tr:nth-child (n+4):nth-child (-n+7){
font-size: 20px;
}
Так с помощью простых манипуляций с CSS стилями и псевдокласса nth-child можно менять оформления страницы и значительно улучшить восприятие и юзабилити сайта.
Пробуйте и предлагайте свои варианты. На этом все, до новых встреч!
В этой главе:Табличные данные - информация, которую можно отобразить в виде таблицы и логически разделить по столбцам и строкам. Для отображения табличных данных на веб-страницах используется элемент
. Именно ячейки содержат весь контент таблицы, отображаемый на веб-странице.
Рамка таблицы
По умолчанию таблица на веб-странице отображается без рамки, для добавления рамки к таблице, как и ко всем другим элементам, используется CSS свойство border . Но стоит обратить внимание на то, что если добавить рамку только к элементу
|