design

Селектор :has(): «родитель с потомком» без JavaScript

Селектор :has(): «родитель с потомком» без JavaScript

:has() — «родительский» селектор: например, .card:has(.error) подсвечивает карточку при невалидном поле внутри.

Производительность: браузер пересчитывает селектор при изменении DOM — не вешайте тяжёлые :has(*) на body.

- [:has() — MDN](https://developer.mozilla.org/en-US/docs/Web/CSS/:has) — Синтаксис и поддержка.

- [The :has() selector — web.dev](https://web.dev/articles/css-has) — Практические примеры.

---

## Паттерны

Комбинируйте с :not(:has(img)) для placeholder-состояния каталога.

Для логики бизнес-правил по-прежнему нужен JS — :has() только для визуала.

beforetoggle: хук жизненного цикла popover

Аналитика до открытия панели.

Мы используем обязательные cookie для работы сайта (корзина, вход, оформление заказа) и необязательные — для аналитики и маркетинга. Вы можете принять все, отклонить необязательные или настроить категории. Подробнее в политике cookies.