На прошлом уроке мы изучили позиционирование. Теперь — псевдоклассы и псевдоэлементы: они позволяют стилизовать элементы в особых состояниях (наведение, фокус) или добавлять виртуальные элементы (декоративные линии, иконки). Они расширяют возможности CSS без изменения HTML.
:hover, :focus, :active.:first-child, :nth-child.::before и ::after для декора.:hover, :focus, :activea:hover { color: red; } /* при наведении */
a:focus { outline: 2px solid blue; } /* при фокусе (Tab, клик) */
button:active { transform: scale(0.98); } /* при нажатии */:hover — самый частый для интерактивности ссылок и кнопок.
:first-child, :last-child, :nth-childli:first-child { font-weight: bold; }
li:last-child { border-bottom: none; }
li:nth-child(2) { color: blue; } /* второй */
li:nth-child(odd) { background: #f5f5f5; } /* нечётные */
li:nth-child(
::before и ::afterДобавляют виртуальный элемент до или после содержимого. Обязательно свойство content:
.quote::before {
content: """;
font-size: 48px;
color: #ccc;
}
.link::after {
content: " →";
}Для пустого декоративного элемента: content: "".
hover.btn {
padding: 12px 24px;
background: #0066cc;
color: white;
border: none;
border-radius: 6px;
cursor: pointer;
}
.btn:hover {
background: #0052a3;
}Стилизуй ссылки: по умолчанию синий, при hover — подчёркивание и другой цвет.
Чередуй фон строк таблицы с :nth-child(odd) и :nth-child(even).
Добавь иконку перед пунктом списка через ::before (символ или эмодзи в content).
Кнопка: при :hover чуть темнее, при :active — «вдавленная» (например, transform: scale(0.98) или box-shadow: inset).
Мы освоили псевдоклассы (:hover, :nth-child) и псевдоэлементы (::before, ::after). На следующем уроке — адаптивная вёрстка.
content у ::before и ::after — псевдоэлемент не отобразится без content: "".:hover на div без cursor: pointer — пользователь не поймет, что элемент интерактивен.:nth-child и :nth-of-type — первое считает все дочерние, второе только одного типа.:before вместо ::before — устаревший синтаксис (с одним двоеточием).hoverНавигационное меню: при наведении на пункт — фон меняется, текст остаётся читаемым. Добавь плавный переход (transition: 0.2s).
hoverКарточка: при наведении — лёгкая тень (box-shadow) и, при желании, лёгкое увеличение (transform: scale(1.02)).
::beforeСписок без стандартных маркеров (list-style: none). Каждый пункт — с символом перед текстом через ::before (например, ✓ или •).
Используй ::first-letter у заголовка: увеличенный размер, другой цвет.
Блок с классом info: левая граница 4px, иконка (символ в ::before), текст. Стилизуй :hover для подсветки.
focus БОНУСПоля ввода: при :focus — рамка другого цвета. Используй outline: none и border-color для кастомного вида.
disabled-кнопка БОНУСКнопка с атрибутом disabled. Стилизуй селектором button:disabled — приглушённые цвета, cursor: not-allowed.