--- title: ':has()' slug: 'Web/CSS/:has' tags: - CSS - Псевдоклассы - Селекторы - Справка - Экспериментальная translation_of: 'Web/CSS/:has' ---
{{CSSRef}}

CSS псевдокласс :has()  отображает элемент в том случае, если любой из селекторов, переданный в качестве параметра (относительно {{cssxref(":scope")}}), соответствует хотя бы одному элементу.

Псведокласс :has() берет соотвествующий список селекторов в качестве аргумента. В ранней версии спецификации CSS Selectors Level 4, :has имел ограничение, которое не позволяло использовать его в таблицах стилей; только с использованием функций, как например: {{domxref("document.querySelector()")}} (из-за проблем с производительностью). На текущий момент, это ограничение снято, так как ни один из браузеров не реализовал это соответствующим образом.

/* Выбирает любой тег <a>, если следом за ним находится дочерний элемент <img> */
/* Отмечу, что это не поддерживается ни одним из браузеров */
var test = document.querySelector('a:has(> img)');

Синтаксис

{{CSSSyntax}}

Примеры

Следующий селектор находит только те теги {{HTMLElement("a")}}, которые непосредственно содержат дочерний элемент {{HTMLElement("img")}}:

a:has(> img)

Следующий селектор находит только те теги {{HTMLElement("h1")}}, при условии, что следом за ними находится элемент {{htmlelement("p")}}:

h1:has(+ p)

Спецификации

Спецификация Статус Комментарий
{{SpecName("CSS4 Selectors", "#relational", ":has()")}} {{Spec2("CSS4 Selectors")}} Начальное определение

Совместимость с браузерами

{{Compat("css.selectors.has")}}