CSS-свойство `pointer-events`
Базовая поддержка Широко доступно
Эта возможность хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Свойство pointer-events CSS задаёт условия, при которых графический элемент может стать целью событий указателя.
Попробуйте
pointer-events: auto;
pointer-events: none;
pointer-events: stroke; /* SVG-only */
pointer-events: fill; /* SVG-only */
<section class="flex-column" id="default-example">
<div id="example-element">
<p>
<a href="#">example link</a>
</p>
<p>
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
<a xlink:href="#">
<circle
cx="50"
cy="50"
fill="#3E6E84"
r="40"
stroke="#ffb500"
stroke-width="5"></circle>
<text fill="white" text-anchor="middle" x="50" y="55">SVG</text>
</a>
</svg>
</p>
</div>
</section>
#example-element {
font-weight: bold;
}
#example-element a {
color: #009e5f;
}
#example-element svg {
width: 10em;
height: 10em;
}
Синтаксис
/* Keyword values */ pointer-events: auto; pointer-events: none; /* Values used in SVGs */ pointer-events: visiblePainted; pointer-events: visibleFill; pointer-events: visibleStroke; pointer-events: visible; pointer-events: painted; pointer-events: fill; pointer-events: stroke; pointer-events: bounding-box; pointer-events: all; /* Global values */ pointer-events: inherit; pointer-events: initial; pointer-events: revert; pointer-events: revert-layer; pointer-events: unset;
Свойство pointer-events задаётся одним ключевым словом из приведённого ниже списка значений.
Значения
-
auto - Элемент ведёт себя так, как если бы свойство
pointer-eventsне было задано. В содержимом SVG это значение и значениеvisiblePaintedимеют одинаковый эффект. -
none -
Элемент, как правило, не является целью событий указателя, за исключением событий
pointerenterиpointerleave, отправленных самому элементу или его потомкам. Обратите внимание: события указателя, целью которых являются потомки (у которыхpointer-eventsне задано какnone), всё равно вызовут срабатывание обработчиков событий на этом родительском элементе на этапах перехвата и всплытия события.Примечание: События
pointerenterиpointerleaveотправляются, когда указательное устройство перемещается на элемент или один из его потомков. Поэтому, даже если для родительского элемента заданоpointer-events: none, а для дочерних элементов оно не задано, события будут запускаться на родительском элементе после перемещения указателя внутрь или наружу потомка.
Только SVG (экспериментально для HTML)
-
visiblePainted - Только SVG (экспериментально для HTML). Элемент может быть целью события указателя, только если свойству
visibilityзадано значениеvisibleи, например, курсор мыши находится над внутренней областью (то есть «заливкой») элемента, а свойствуfillзадано значение, отличное отnone, либо если курсор мыши находится над периметром (то есть «обводкой») элемента, а свойствуstrokeзадано значение, отличное отnone. -
visibleFill - Только SVG. Элемент может быть целью события указателя, только если свойству
visibilityзадано значениеvisibleи, например, курсор мыши находится над внутренней областью (то есть заливкой) элемента. Значение свойстваfillне влияет на обработку событий. -
visibleStroke - Только SVG. Элемент может быть целью события указателя, только если свойству
visibilityзадано значениеvisibleи, например, курсор мыши находится над периметром (то есть обводкой) элемента. Значение свойстваstrokeне влияет на обработку событий. -
visible - Только SVG (экспериментально для HTML). Элемент может быть целью события указателя, если свойству
visibilityзадано значениеvisibleи, например, курсор мыши находится над внутренней областью (то есть заливкой) или периметром (то есть обводкой) элемента. Значения свойствfillиstrokeне влияют на обработку событий. -
painted - Только SVG (экспериментально для HTML). Элемент может быть целью события указателя, только если, например, курсор мыши находится над внутренней областью (то есть «заливкой») элемента, а свойству
fillзадано значение, отличное отnone, либо если курсор мыши находится над периметром (то есть «обводкой») элемента, а свойствуstrokeзадано значение, отличное отnone. Значение свойстваvisibilityне влияет на обработку событий. -
fill - Только SVG. Элемент может быть целью события указателя, только когда указатель находится над внутренней областью (то есть заливкой) элемента. Значения свойств
fillиvisibilityне влияют на обработку событий. -
stroke - Только SVG. Элемент может быть целью события указателя, только когда указатель находится над периметром (то есть обводкой) элемента. Значения свойств
strokeиvisibilityне влияют на обработку событий. -
bounding-box - Только SVG. Элемент может быть целью события указателя, только когда указатель находится над ограничивающей рамкой элемента.
-
all - Только SVG (экспериментально для HTML). Элемент может быть целью события указателя, только когда указатель находится над внутренней областью (то есть заливкой) или периметром (то есть обводкой) элемента. Значения свойств
fill,strokeиvisibilityне влияют на обработку событий.
Описание
Если это свойство не задано, для содержимого SVG применяются те же характеристики, что и для значения visiblePainted.
Помимо указания на то, что элемент не является целью событий указателя, значение none предписывает событию указателя пройти «сквозь» элемент и нацелиться на то, что находится «под» ним.
Обратите внимание: запрет на то, чтобы элемент становился целью событий указателя, с помощью pointer-events не обязательно означает, что обработчики событий указателя на этом элементе не могут или не будут вызываться. Если для одного из дочерних элементов явно задано значение pointer-events, разрешающее ему быть целью событий указателя, то любые события, целью которых является этот дочерний элемент, будут проходить через родительский элемент по цепочке родителей и при необходимости вызывать обработчики событий на родителе. Разумеется, активность указателя в точке экрана, которая закрыта родительским элементом, но не дочерним, не будет перехвачена ни дочерним, ни родительским элементом (указатель пройдёт «сквозь» родителя и нацелится на то, что находится под ним).
Элементы со значением pointer-events: none по-прежнему получают фокус при последовательной навигации с помощью клавиши Tab.
Формальное определение
| Начальное значение | auto |
|---|---|
| Применяется к | всем элементам |
| Наследуется | да |
| Вычисленное значение | как задано |
| Тип анимации | дискретный |
Формальный синтаксис
pointer-events =
auto |
none |
visiblePainted |
visibleFill |
visibleStroke |
visible |
painted |
fill |
stroke |
all |
inherit
Примеры
Отключение событий указателя для всех изображений
В этом примере события указателя (нажатие, перетаскивание, наведение и т. д.) отключаются для всех изображений.
img {
pointer-events: none;
}
Отключение событий указателя для одной ссылки
В этом примере события указателя отключаются для ссылки на http://example.com.
HTML
<ul> <li><a href="https://developer.mozilla.org">MDN</a></li> <li><a href="http://example.com">example.com</a></li> </ul>
CSS
a[href="http://example.com"] {
pointer-events: none;
}
Результат
Спецификации
| Спецификация |
|---|
| Модуль базового пользовательского интерфейса CSS, уровень 4 # pointer-events-control |
| Масштабируемая векторная графика (SVG) 2 # PointerEventsProperty |
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
pointer-events |
1 |
12 |
1.5 |
9 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
2 |
3.2 |
all |
1 |
12 |
1.5 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
auto |
1 |
12 |
1.5 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
bounding-box |
33 |
79 |
Нет |
20 |
13 |
33 |
Нет |
20 |
13 |
2.0 |
4.4.3 |
13 |
fill |
1 |
12 |
1.5 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
html_elements |
2 |
12 |
3.6 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
37 |
3.2 |
none |
1 |
12 |
1.5 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
painted |
1 |
12 |
1.5 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
stroke |
1 |
12 |
1.5 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
visible |
1 |
12 |
1.5 |
15 |
4 |
18 |
4 |
14 |
3.2 |
1.0 |
4.4 |
3.2 |
visibleFill |
≤31 |
12 |
≤50 |
≤18 |
4 |
≤31 |
≤50 |
≤18 |
3.2 |
≤2.0 |
≤4.4.3 |
3.2 |
visiblePainted |
≤31 |
12 |
≤50 |
≤18 |
4 |
≤31 |
≤50 |
≤18 |
3.2 |
≤2.0 |
≤4.4.3 |
3.2 |
visibleStroke |
≤31 |
12 |
≤50 |
≤18 |
4 |
≤31 |
≤50 |
≤18 |
3.2 |
≤2.0 |
≤4.4.3 |
3.2 |
См. также
user-select- Атрибут SVG
pointer-events - Атрибут SVG
visibility PointerEvent
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/pointer-events