Псевдоклассы в CSS
Псевдокласс - это специфическая характеристика элемента, которая создается с помощью CSS.Псевдокласс определяет динамическое состояние элемента и применяется тогда, когда пользователь выполняет определенное действие.
Синтаксис:
селектор:псевдокласс /*одинарное двоеточие*/
{CSS свойство: значение; ...
}
Пробела между селектором и псевдоклассом нет.
Псевдокласс начинается с двоеточия :
В CSS существует более тридцати псевдоклассов.
Наиболее распространенные псевдоклассы: :link :visited :hover :active :focus :first-child :nth-child
Стилизация ссылок
В оформлении вида гиперссылок важна последовательность!- a:link - стиль не посещенной ссылки
- a:visited - стиль для посещенной ссылки
- a:hover - ссылка над которой находится мышь (указывать последним)
- a:active - активизированная ссылка
<style>
a:link {color: blue; text-decoration: none;} /*голубой, без подчеркивания*/
/* или a{color: blue; text-decoration: none;}*/
/* можно не указывать псевдокласс :link */
a:hover {color: red; text-decoration: underline;} /*красный, подчеркнутый*/
a:hover.klas1 {background-color: yellow;} /*желтый*/
p.text:active {background-color: aqua;} /*морской*/
</style>
1) <a href="#">перейти на верх страницы</a>
2) <a class="klas1" href="#">ссылка с классом klas1</a>
3) <p class="text">Абзац с классом text</p>
1) перейти на верх страницы
2) ссылка с классом klas1
3) Абзац с классом text (нажми правую кнопку мыши)
Псевдокласс :hover
Псевдокласс :hover может быть применен не только к ссылкам.При наведении указателя мыши можно подсветить строку или ячейку таблицы.
<style>
table {border-collapse: collapse;
}
th,
td {padding: 0 3px;
border: 1px solid #000;
}
tr:hover {background-color:LightGray;
}
<style>
<table>
<tr>
<th>символ</th>
<th>html-код</th>
<th>десятичный код</th>
</tr>
<tr><td>неразрывный пробел</td><td> </td><td> </td></tr>
<tr><td>пробел шириной в букву n</td><td> </td><td> </td></tr>
<tr><td>пробел шириной в букву m</td><td> </td><td> </td></tr>
<tr><td>тире шириной в букву n</td><td>–</td><td>–</td></tr>
<tr><td>тире шириной в букву m</td><td>—</td><td>—</td></tr>
</table>
(При наведении мышки на строку таблицы, строка меняет цвет.)
Символ |
html-код | десятичный код |
|---|---|---|
| неразрывный пробел | |   |
| пробел шириной в букву n |   |   |
| пробел шириной в букву m |   |   |
| тире шириной в букву n | – | – |
| тире шириной в букву m | — | — |
Примеры Таблиц и псевдокласс :hover
2-3
<style>
table.22, table.23 {border-collapse: collapse;
}
table.22 td, table.23 td {padding: 0 3px;
border: 1px solid #000;
}
table.22 td:hover {background-color:teal; color:#fff;}
table.24 td:hover {background-color:gray; color:#fff;}
table.23 tr:hover {background-color:red; color:#fff;}
<style>
2-2
<table class="22">
<tr><td colspan=3>Шапка Таблицы</td></tr>
<tr><td>стр. 1</td><td>11</td><td>12</td></tr>
<tr><td>стр. 2</td><td>21</td><td>22</td></tr>
</table>
2-3
<table class="23">
<tr><td colspan=3>Шапка Таблицы</td></tr>
<tr class=22><td>стр. 1</td><td>11</td><td>12</td></tr>
<tr class=24><td>стр. 2</td><td>21</td><td>22</td></tr>
</table>
2-2
Изменение цвета ячейки при неведении
| Шапка Таблицы | ||
| стр. 1 | 11 | 12 |
| стр. 2 | 21 | 22 |
Реэультат
2-3
Одновременное изменение цвета строки
и цвета ячейки при неведении
| Шапка Таблицы | ||
| стр. 1 | 11 | 12 |
| стр. 2 | 21 | 22 |
Пример 3
"Всплывающая подсказка при наведении"
(Всплывающая подсказка при наведении)
<style>
.help {position:relative;}
.help span {display:none;}
.help:hover {text-decoration:underline; cursor: help;}
.help:hover span {
display:block;
position:absolute;
width:400px;
top:25px; left:20px;
background-color:#e6ffe6;
border:1px solid green;
padding:5px;
font-size:14px;
color:#333333;
text-decoration:none;
font-family: Arial sans-serif;
}
</style>
Стили <a class="help" href="#"><span>CSS («каскадные таблицы стилей») — формальный язык описания внешнего вида веб-страницы</span>
<b>CSS</b></a> могут быть подключены в веб-документ...
(Наведи на слово CSS, чтобы увидеть подсказку.)
Стили CSS («каскадные таблицы стилей») — формальный язык описания внешнего вида веб-страницы CSS могут быть подключены в веб-документ...
Фокус на элементе
:focusДанный псевдокласс происходит, когда элемент HTML получает фокус. Это состояние обычно используется для полей форм.
<style>
.form-input {border: 2px solid black; padding: 5px;}
.form-input:focus {background: lightyellow; border-color: green;}
</style>
<input class="form-input" placeholder="Введите имя">
Результат Примера 4
Структурные псевдоклассы
:nth-childПсевдокласс :nth-child используется для добавления стиля к элементам на основе нумерации в дереве элементов.
Синтаксис:
:nth-child(номер) - определяет элемент по его номеру в дереве элементов.
- :nth-child(odd) - Все нечетные номера элементов.
- :nth-child(even) - Все четные номера элементов.
- :nth-child(число) - Порядковый номер дочернего элемента относительно своего родителя. Нумерация начинается с 1, это будет первый элемент в списке.
- :nth-child(выражение) - Выражение задается в виде an+b, где a и b целые числа. n — счетчик, который автоматически принимает значение 0, 1, 2...
Пример: Чередование цвета строк Таблицы
<style>
table.tab_ch {
margin: 0 auto; width: 80%;
border-collapse: collapse;
}
.tab_ch td, .tab_ch th {
border: 1px solid #7e5a25;
padding: 3px 7px;
}
.tab_ch th {
text-align: left;
padding: 15px;
background-color: #b4a18a;
color: #ffffff;
}
/* нечетные номера строк */
.tab_ch tr:nth-child(odd) {background:#e9e1e1;}
/* четные номера строк */
.tab_ch tr:nth-child(even){background:#f7f0de;}
</style>
<table class="tab_ch">
<caption>Зарплата депутатов Госдумы</caption>
<tr><th>Год</th><th>ЗП</th><th>МРОТ</th></tr>
<tr><td>2017<<td><td>360 тыс.<<td><td>7800</td></tr>
<tr><td>2018</td><td>338,5 тыс.</td><td>9489</td></tr>
...
<tr><td>2021</td><td>500 тыс.</td><td>12792</td></tr>
</table>
| Год | Зарплата (руб. в месяц) | МРОТ * (руб. в месяц) |
|---|---|---|
| 2017 | 360 тыс. | 7 800 |
| 2018 | 338,5 тыс. | 9 489 |
| 2019 | 353 тыс. | 11 280 |
| 2020 | 450 тыс. | 12 130 |
| 2021 | 500 тыс. | 12 792 |
Для чередования цвета строк Таблицы в CSS используется псевдокласс :nth-child
Значение (odd) - Все нечетные номера
Значение (even) - Все четные номера элементов.
* МРОТ - Минимальный Размер Оплаты Труда