CSS и вёрстка

Pointer events css что это

Pointer events css что это 📅 ⏱ 22:09 ⏳ 1 мин 💬 0

Pointer events css что это: простыми словами, по шагам и с примерами. Разбираем, как это работает на практике, типичные ошибки и лучшие решения. Раскрываем тему

Pointer events css что это

Коротко: pointer-events — свойство CSS, которое управляет тем, реагирует ли элемент на клики, наведение и касания. Два значения: auto (реагирует, обычное поведение) и none (элемент «прозрачен» для мыши — клики проходят сквозь него). Это не удаление из разметки, а отключение интерактивности.

Кому и зачемЧастые задачи: отключить кнопку «недоступно», сделать полупрозрачную подложку, сквозь которую видны клики по ссылкам под ней, выключить ссылку-заглушку, не реагировать на события у декоративного слоя.

Два значения свойства

Значение Поведение Типичное применение
auto элемент реагирует как обычно (по умолчанию) вернуть интерактивность после отключения
none клики/наведение игнорируются, проходят насквозь заблокировать элемент или слой

Вкладки: где применять




CSS
.btn[disabled],
.btn.is-disabled {
  pointer-events: none;
  opacity: .5;
  cursor: not-allowed;
}

Самый частый кейс: кнопка «на паузе». Она теряет кликабельность и выглядит неактивной. Важно: pointer-events: none убирает и подсказку курсора, поэтому cursor может выглядеть не так, как ожидается.

CSS
.backdrop {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.4);
  pointer-events: none;   /* клики проходят сквозь подложку */
}

Полупрозрачная подложка, которая является только фоном и не мешает кликам по элементам под ней. Если нужно, наоборот, ловить клик по подложке, оставьте auto.

CSS
.coming-soon a {
  pointer-events: none;
  color: #999;
}

Ссылка на «скоро»: выглядит как ссылка, но не ведёт никуда. Это «мягкий» способ вместо удаления href.

CSS
.card::before {
  content: "";
  position: absolute; inset: 0;
  pointer-events: none;   /* декор не перехватывает клики */
}

Декоративные градиенты, блики, водяные знаки, наложенные поверх карточки, не должны мешать клику по самой карточке.

pointer-events: none ≠ disabledЭлемент визуально и по событиям отключён, но остаётся в разметке и доступен скриптам и скринридерам. Для настоящей блокировки форм используйте атрибут disabled, а pointer-events — для визуально-интерактивных эффектов.

Не только для указателя

У pointer-events есть дополнительное значение для SVG — visiblePainted и другие. Оно определяет, какие именно части фигуры «ловят» клик (заливка, контур, всё). В обычном HTML это не нужно, но в SVG-иконках иногда встречается.

CSS
svg .hole { pointer-events: none; }   /* дырка не перехватывает клик */

Наследование и «вернуть обратно»

Свойство наследуется: если родителю задать none, дети тоже перестанут реагировать. Чтобы вернуть отдельному элементу интерактивность, задайте ему auto:

CSS
.layer { pointer-events: none; }
.layer .active-item { pointer-events: auto; }

Частые ошибки: причина → решение

Симптом Причина Решение
Кнопка не кликается осталась pointer-events: none вернуть auto
Клики не доходят до ссылок прозрачный слой перехватывает слою задать none
Курсор не меняется none отключает и hover использовать disabled/is-disabled
Весь блок стал «мёртвым» свойство унаследовано от родителя вернуть auto нужным элементам

Проверьте себя

Чек-лист




Что делает pointer-events: none?




Чем pointer-events: none отличается от атрибута disabled?




Вопросы и ответы

Да, оно наследуется. Если родителю поставить none, дети тоже перестанут реагировать, пока им не вернуть auto.

Нет. Свойство лишь отключает события указателя — код можно вызвать иначе, а клавиатурная навигация по ссылкам может остаться. Это не защита, а UI-приём.

Проверьте, не переопределяет ли свойство другое правило, и не лежит ли поверх элемент с auto. И ещё: pointer-events действует и на касания, но конфликтующие скрипты могут ловить тап сами.

Подложке оставьте pointer-events: auto и повесьте обработчик клика. А декоративные слои внутри — none, чтобы не мешали.

Итоги

  • pointer-events управляет реакцией на мышь и касания, а не видимостью.
  • none пропускает клики сквозь элемент.
  • Для форм правильнее disabled, для декора — none.
  • Свойство наследуется — вернуть интерактивность можно через auto.
Поделиться: ВКонтакте Telegram WhatsApp Одноклассники Viber Мой Мир

Комментарии

Пока комментариев нет — будьте первым, кто поделится мнением.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получите консультацию нашего маркетолога

Изучит ваш проект, подберет подходящие услуги и тарифы

Получите бесплатный аудит

Наш специалист сделает базовый аудит вашего проекта и предложит персональные предложения.

Закажите услугу Каталог морепродуктов

Наш специалист свяжется с вами в ближайшее время и уточнит детали

Закажите адаптивный сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт лендинг

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите сайт каталог

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите интернет-магазин

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите веб-приложение

Наш специалист поможет составить Вам техническое задание на разработку сайта

Закажите тариф Аутсорс

Стоимость от 150 000 ₽

Закажите тариф Магазин

Стоимость 90 000 ₽

Закажите тариф Классический

Стоимость 60 000 ₽

Закажите тариф Эконом

Стоимость 40 000 ₽

Закажите SEO продвижение

Наш специалист свяжется с вами, проведет анализ, предложит стоимость