Встречается на собеседованиях • сегодня

Почему в CSS нет свойств влияющих на родителя

В CSS нет прямых способов влиять на родительский элемент, потому что язык изначально проектировался с однонаправленным потоком стилей — от родителя к потомку. Это упрощает производительность и предотвращает циклические зависимости.

Однако есть обходные пути:

  1. :has() (новый селектор) — позволяет выбрать родителя по условию потомка (пока поддержка неполная):
css
.parent:has(.child:hover) {
  background: red;
}
  1. JavaScript — для сложных случаев динамического изменения родителя.

  2. CSS-переменные — потомки могут изменять переменные, которые родитель использует:

css
.parent {
  --bg-color: blue;
  background: var(--bg-color);
}
.child:hover {
  --bg-color: red;
}

Основная причина — архитектурное решение для предсказуемости и производительности рендеринга.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы