CSS pointer-events — зробити елемент прозорим для кліків
CSS властивість pointer-events визначає, чи реагує елемент на кліки й наведення. Значення none робить його прозорим для миші.
Загальний опис
Найчастіший випадок — декоративний шар поверх контенту: градієнт, іконка, підказка. Без pointer-events: none він перехоплював би кліки, і кнопка під ним перестала б працювати.
Другий випадок — вимкнена кнопка: разом із opacity: .5 вона виглядає й поводиться як неактивна.
- Нотатка
-
автор: NagarDpointer-events: noneвимикає тільки мишу. З клавіатури елемент усе одно доступний — тож для справді вимкнених кнопок потрібен ще й атрибутdisabled.
Синтаксис
pointer-events: auto | none;
Властивість pointer-events може отримувати 2 значень:
-
auto -
Елемент реагує на вказівник як звичайно.
автор: NagarD -
none -
Елемент прозорий для подій — кліки проходять крізь нього.
автор: NagarD
| Значення без задання: | auto |
|---|---|
| Наслідує: | Так |
| Анімується: | Ні |
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| pointer-events | 2+ | 3.6+ | 4+ | 9+ | 12+ | 11+ |
| Переглядач | ||||
|---|---|---|---|---|
| pointer-events | yes | yes | yes | yes |
Приклади
+ запропонувати свій приклад у пісочниці
Декоративний градієнт поверх кнопки не заважає клікнути.
HTML
<div class="wrap">
<button>Клікни мене</button>
<div class="shine"></div>
</div>
CSS
.wrap { position: relative; display: inline-block; }
.shine {
position: absolute;
inset: 0;
background: linear-gradient(120deg, rgb(255 255 255 / .4), transparent);
/* без цього рядка кнопка перестане клікатись */
pointer-events: none;
}
Коментарі
Коментарів ще немає — будьте першим!