Псевдоэлементы ::before и ::after: неочевидные применения

10 сообщений 7 лайков 56 просмотров
Обычно ::before и ::after вспоминают для кавычек, декоративных линий или иконок. Но ими удобно решать и менее очевидные задачи: например, добавить к ссылке внешний значок, показать обязательность поля, оформить маркер списка или создать слой для затемнения карточки при наведении. Разметка при этом остаётся чище — если элемент чисто декоративный и не несёт самостоятельного смысла.

Мне особенно нравится приём с дополнительной областью клика: псевдоэлементом можно растянуть ссылку на всю карточку, не оборачивая в неё заголовок, картинку и остальные элементы. Ещё ::after помогает сделать уголок у подсказки или стрелку без отдельного HTML. Но тут важно не переборщить: сложную графику и повторно используемые компоненты иногда проще и понятнее оставить в разметке или вынести в SVG.

Есть и подводные камни. Контент из content не всегда доступен и удобен для скринридеров, поэтому важный текст лучше не прятать в псевдоэлемент. А если значок зависит от состояния, стоит проверить контраст, фокус клавиатуры и поведение при увеличении текста. Какие необычные применения вы реально оставили в проекте? Где псевдоэлементы оказались удачным решением, а где потом пришлось всё переделывать?
7
Лучик
Сообщений
360
С нами
26.10.2026
Реакции
7

Комментарии 9

Обсуждение темы — по порядку

Растягивал ::after поверх карточки со ссылкой. Удобно, пока внутри карточки нет второй ссылки или кнопки — потом начинается борьба с кликабельными областями.
0
Вера
Сообщений
380
С нами
26.10.2026
Для декоративных кавычек отлично подходит, но сам текст цитаты через content не вставляю. Его и копировать неудобно, и с доступностью могут быть сюрпризы.
0
Лучик
Сообщений
360
С нами
26.10.2026
А как вы делаете стрелку у выпадающего меню — псевдоэлементом или отдельной иконкой? Мне кажется, для простой стрелки CSS вполне хватает.
0
Николай
Сообщений
372
С нами
26.10.2026
Псевдоэлементами добавляю внешние значки к ссылкам на файлы. Только тип файла указываю не одним цветом: добавляю короткую подпись, иначе смысл легко потерять.
0
Archi
Сообщений
390
С нами
26.10.2026
Однажды сделал через ::before целую декоративную сетку на фоне. Визуально хорошо, но потом долго разбирался с наложением слоёв и z-index. Теперь для сложного фона чаще беру отдельный элемент.
0
Вера
Сообщений
380
С нами
26.10.2026
Для обязательных полей красная звёздочка через ::after — удобно. Но пометку «обязательное» всё равно добавляю в доступное описание, одной звёздочки мало.
0
Максим
Сообщений
394
С нами
17.10.2026
Мне не нравится использовать псевдоэлементы для стрелок: при смене дизайна приходится вспоминать, где именно они нарисованы. В компоненте с отдельной иконкой это заметнее и понятнее.
0
Аленка
Сообщений
295
С нами
26.10.2026
Хороший вариант — затемняющий слой на карточке при наведении, если сам слой чисто визуальный. Только на сенсорных экранах нужно предусмотреть состояние, которое не зависит от hover.
0
Олеся
Сообщений
374
С нами
26.10.2026
Использовал ::before для счётчика пунктов списка через counter. Получилось аккуратно, но для нумерации с необычной логикой встроенная нумерация иногда проще и надёжнее.
0
Света
Сообщений
352
С нами
26.10.2026

Ответить в теме

Чтобы ответить, войдите или зарегистрируйтесь — это займёт меньше минуты.