Ответ
Да, можно, но не напрямую. В CSS нет селектора для выбора родителя по дочернему элементу. Однако есть несколько обходных путей:
- Использование JavaScript:
const child = document.querySelector('.child');
child.parentElement.style.color = 'red';
- CSS-переменные:
Родитель определяет переменные, которые может менять дочерний элемент:
.parent {
--text-color: black;
color: var(--text-color);
}
.child:hover {
--text-color: red; /* изменит родителя */
}
- :has() (новый, но пока не везде поддерживается):
.parent:has(.child:hover) {
color: red;
}
Лучший подход зависит от конкретной задачи и поддержки браузеров. Чаще всего используют JavaScript или пересматривают структуру стилей.