MDN 上介绍为 CSS 属性指定在什么状况下 (若是有) 某个特定的图形元素能够成为鼠标事件的 target。
pointer-events 属性值有:css
/* Keyword values */ pointer-events: auto; pointer-events: none; pointer-events: visiblePainted; /* SVG only */ pointer-events: visibleFill; /* SVG only */ pointer-events: visibleStroke; /* SVG only */ pointer-events: visible; /* SVG only */ pointer-events: painted; /* SVG only */ pointer-events: fill; /* SVG only */ pointer-events: stroke; /* SVG only */ pointer-events: all; /* SVG only */ /* Global values */ pointer-events: inherit; pointer-events: initial; pointer-events: unset;
其中默认属性为 auto。 当值为none表示鼠标事件“穿透”该元素而且指定该元素“下面”的任何东西。html
抛却只适用于svg的值,说一说 none 的使用场景。 mdn上的解释不太好理解。 网友叙帝利 给出了一种使用场景。
我这里还有一中使用场景是 当用div元素经过css样式模拟按钮时,能够使用 pointer-event: none
模拟button禁止点击。
好比:svg
// html <div class="point" onclick="alert('ok')提交申请</div> .point { width: 1.8rem; height: .44rem; margin: 0 auto; margin-top: 0.8rem; text-align: center; line-height: .44rem; border-radius: 22px; color: #fff; background-color: rgba(67,76,94,.43); pointer-events: none; }
此时该div的样子,若是不设置pointer-events: none; 只是样子不可点击,点击仍是会触发事件响应的。 加上则不会响应click事件了。spa