--- title: pointer-events slug: Web/CSS/pointer-events tags: - CSS-свойства - Ссылка translation_of: Web/CSS/pointer-events ---
CSS-свойство pointer-events
позволяет контролировать события, при которых элемент может стать объектом события мыши. Если это свойство не задано, то к содержимому SVG будут применяться характеристики значения visiblePainted.
Вдобавок к указанию того, что элемент не является объектом события мыши, значение none
сообщает событию мыши проходить "через" элемент и обращаться к элементу, находящемуся "под" ним.
{{cssinfo}}
/* Значения ключевых слов */ pointer-events: auto; pointer-events: none; pointer-events: visiblePainted; /* только SVG */ pointer-events: visibleFill; /* только SVG */ pointer-events: visibleStroke; /* только SVG */ pointer-events: visible; /* только SVG */ pointer-events: painted; /* только SVG */ pointer-events: fill; /* только SVG */ pointer-events: stroke; /* только SVG */ pointer-events: all; /* только SVG */ /* Глобальные значения */ pointer-events: inherit; pointer-events: initial; pointer-events: unset;
auto
pointer-events
не было задано. В SVG это значение даёт такой же эффект, как и значение visiblePainted
.none
pointer-events
имеет какое-либо другое значение. В этом случае события мыши вызовут ожидаемое срабатывание обработчиков на этом родительском элементе на пути к/от потомк(у)/(а) во время фазы захвата/всплытия.
visiblePainted
visibility
установлено в значение visible
и когда курсор мыши находится над внутренней частью ('fill') элемента, при этом свойство fill
установлено в значение отличное от none
, или над периметром элемента ('stroke'), при этом свойство stroke
установлено в значение отличное от none
.visibleFill
visibility
установлено в значение visible
и когда курсор мыши находится над внутренней частью ('fill') элемента. Значение свойства fill
не влияет на обработку события.visibleStroke
visibility
установлено в значение visible
и когда курсор мыши находится над периметром элемента ('stroke'). Значение свойства stroke
не влияет на обработку события.visible
visibility
установлено в значение visible
и когда курсор мыши находится над внутренней частью ('fill') или над периметром ('stroke') элемента. Значение свойств fill
и stroke
не влияют на обработку события.painted
fill
установлено в значение отличное от none
, или над периметром элемента ('stroke'), при этом свойство stroke
установлено в значение отличное от none
. Значение свойства visibility
не влияет на обработку события.fill
visibility
и fill
не влияют на обработку события.stroke
visibility
и stroke
не влияют на обработку события.all
visibility
, fill
и stroke
не влияют на обработку события./* Пример 1: Сделать так, что бы все объекты img не реагировали на перетаскивание, наведение(:hover), нажатие(click) и т.д. */ img { pointer-events: none; }
Сделать ссылку на ресурс http://example.com не реагирующей на нажатие(click), наведение(:hover) и т.д.
<ul> <li><a href="https://developer.mozilla.org">MDN</a></li> <li><a href="http://example.com">example.com</a></li> </ul>
a[href="http://example.com"] { pointer-events: none; }
Обратите внимание, что предотвращение того, чтобы элемент был объектом событий мыши, с помощью pointer-events
не обязательно означает, что обработчики событий мыши на этом элементе не могут или не будут запускаться. Если у одного из дочерних элементов есть явные pointer-events,
позволяющие этому ребёнку быть объектом событий мыши, тогда любые события, нацеленные на этого дочернего элемента, будут проходить через родителя, когда событие перемещается вдоль родительской цепочки и запускает обработчики событий на родительском объекте. Конечно, любая активность мыши в точке на экране, которая покрывается родителем, но не дочерним, не будет поймана ни ребёнком, ни родителем (он пройдёт через «родительский» на «цели» под ним).
Мы хотели бы предоставить более тонкий контроль (а не только auto
и none
) в HTML, когда части элемента смогут «поймать» события мыши. Если у вас есть какие-то конкретные вещи, чтобы помочь нам в решении как следует расширить pointer-events
для HTML, и которые вы хотели бы сделать с этим свойством, добавьте их в раздел «Использовать случаи» на этой странице вики (не беспокойтесь, мы всё сохраним аккуратно).
Спецификация | Статус | Коммент |
---|---|---|
{{SpecName('SVG1.1', 'interact.html#PointerEventsProperty', 'pointer-events')}} | {{Spec2('SVG1.1')}} |
Это расширение для элементов HTML, хоть и присутствует в ранних версиях CSS Basic User Module Interface Level 3, было перенесено на level 4.
{{Compat("css.properties.pointer-events")}}