Псевдоклассы в 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) - Все четные номера элементов.
* МРОТ - Минимальный Размер Оплаты Труда