Урок 12. Справочник: все варианты

📁 Раздел: Состояния и темы ⏱️ Время изучения: ~50 мин 🎯 Сложность: Средняя

⚡ Кратко

Состояния: hover focus focus-visible active disabled checked. Зависимости: group-*, peer-*, has-*. Атрибуты: data-[…], aria-*.

Состояния элемента

ВариантCSSГде применяют
hover::hoverкнопки, ссылки, строки таблицы
focus::focusполя ввода
focus-visible::focus-visibleкнопки и ссылки — доступный фокус
focus-within::focus-withinобёртка поля с иконкой
active::activeэффект нажатия
visited::visitedпосещённые ссылки
disabled::disabledвыключенные элементы
checked:, indeterminate::checkedчекбоксы и радио
required:, invalid:, read-only:валидация формыполя ввода
placeholder:::placeholderцвет подсказки
selection:::selectionвыделенный текст
file:::file-selector-buttonкнопка выбора файла
marker:::markerмаркеры списка
before:, after:псевдоэлементыдекоративные детали

Зависимости между элементами

ВариантСмыслПример
group + group-hover:состояние предкаиконка меняется при наведении на карточку
group-focus-within:фокус внутри предкаподсветка блока формы
group-has-[a]:у предка есть потомоккарточка со ссылкой внутри
group/name + group-hover/name:именованная группавложенные группы
peer + peer-checked:состояние соседа выше по разметкепереключатель
peer-disabled:, peer-focus:то же для других состоянийподпись поля
has-[:checked], has-checked:содержимое элементакарточка выбора тарифа
in-focus:элемент внутри сфокусированного предкаподсветка группы

Атрибуты и позиция

ВариантУсловие
data-[state=open]:атрибут data-state="open"
data-active:наличие data-active
aria-expanded:, aria-selected:, aria-invalid:ARIA-атрибуты
open:открытый <details> или диалог
target:элемент — цель якоря в адресе
first:, last:, only:позиция среди соседей
odd:, even:, nth-3:чётность и номер
empty:элемент без содержимого
*:, **:прямые дети / все потомки
not-hover:, not-first:отрицание условия

Среда и устройство

ВариантУсловие
dark:тёмная тема (урок 13)
motion-reduce:, motion-safe:настройка анимаций в системе
pointer-coarse:, pointer-fine:сенсорный или точный ввод
print:печать страницы
supports-[…]:поддержка свойства браузером
starting:начальное состояние для анимации появления

Полный перечень с примерами — в справочнике «Модификаторы».