CSS-справочникВ стандарте

CSS ::after — как работает

CSS ::after: принцип работы, корректный синтаксис, практический сценарий, ограничения, ошибки и актуальная совместимость.

Назначение и границы

Практический смысл «::after» связан с тем, чтобы выбрать создаваемую браузером часть элемента или особый фрагмент его содержимого. Псевдоэлемент ::after выбирает специальную часть элемента без отдельного HTML-узла. Контрольная проверка «::after» проходит на панели управления с асинхронным обновлением данных, а наблюдаемой точкой служит изменение при prefers-reduced-motion.

Практическое правило для ::after

Рабочий критерий для «::after»: проверяйте, создаётся ли псевдоэлемент в выбранном контексте и доступно ли содержимое без него. Если результат «::after» меняется вместе с посторонним условием, пример ещё не изолирован.

Синтаксис ::after

Для демонстрации «::after» используется короткий код с наблюдаемым результатом. Сохраните структуру примера, когда будете проверять другое значение.

css
.label::after {
  color: #2563eb;
}
Открыть в Playground

Как работает ::after

Механика «::after» начинается с допустимого контекста и заканчивается наблюдаемым результатом. Применяет декларации к псевдоэлементу без добавления лишнего HTML-узла; для «::after» отдельно проверьте изменение при prefers-reduced-motion.

Проверка в проекте

  • Проверяйте, создаётся ли псевдоэлемент в выбранном контексте и доступно ли содержимое без него; результат относится непосредственно к «::after».
  • Проверить вычисленное значение в DevTools и источник победившего правила при разборе «::after».
  • Проверьте «::after» на панели управления с асинхронным обновлением данных через изменение при prefers-reduced-motion и запишите наблюдаемое изменение.
Выбор конструкции

Выбор «::after» оправдан, если задача относится к области «псевдоэлементы», а риск «смысловое содержимое нельзя оставлять доступным только через ::after» исключён проверкой. Для «::after» сравнивайте не внешний вид, а результат для пользователя.

Практика с ::after

Соберите «::after» в изолированном демо и проверьте предметное условие: проверяйте, создаётся ли псевдоэлемент в выбранном контексте и доступно ли содержимое без него. Затем для «::after» замените содержимое длинным и сузьте контейнер до 320 px.

псевдоэлементы::after

Сценарий: на панели управления с асинхронным обновлением данных.

Ошибки при работе с ::after

01

Доступность

Смысловое содержимое нельзя оставлять доступным только через ::after — это предметный риск для «::after».

02

Каскад

Проверка только мышью и только на широком экране при использовании «::after».

03

Поддержка

Потеря содержимого при печати или отключении фоновых изображений; для «::after» проверьте это отдельно.

Поддержка ::after

Для «::after» таблица собрана из закреплённой версии MDN Browser Compatibility Data. Указанная версия браузера показывает первое заявленное появление базовой поддержки «::after»; окончательное решение принимайте по аудитории конкретного проекта.

Chromeс версии 1Edgeс версии 12Firefoxс версии 1.5Safariс версии 4

Спецификация: источник 1.

Вопросы о ::after

Как понять, что «::after» выбрано правильно?

«::after» выбрано правильно, когда оно решает задачу «выбрать создаваемую браузером часть элемента или особый фрагмент его содержимого», сохраняет результат на панели управления с асинхронным обновлением данных и проходит предметную проверку: проверяйте, создаётся ли псевдоэлемент в выбранном контексте и доступно ли содержимое без него.

Нужен ли запасной вариант для «::after»?

Запасной вариант для «::after» нужен, если целевой браузер или режим не обеспечивает выбранное поведение. Без улучшения «::after» должно сохранять смысл, содержимое и основное действие.

Спецификации и источники

Синтаксис и статус проверяются по HTML Living Standard, спецификациям CSS и MDN Browser Compatibility Data. Примеры и объяснения подготовлены для этого сервиса.