pointer-events

261 阅读3分钟

pointer-events 是 CSS 属性,用于控制元素对鼠标事件的响应方式。它可以设置为不同的值以实现不同的行为。默认值是 auto

以下是 pointer-events 的取值和对应的行为:

  • auto:默认值,元素对鼠标事件作出响应。
  • none:元素不对鼠标事件作出任何响应,鼠标事件会穿透元素,直接作用于底层元素。
  • visiblePainted:元素对鼠标事件作出响应,但只对绘制的内容作出响应,对透明部分不作出响应。
  • visibleFill:元素对鼠标事件作出响应,但只对填充区域作出响应,对非填充区域不作出响应。
  • visibleStroke:元素对鼠标事件作出响应,但只对边框区域作出响应,对内容区域不作出响应。
  • visible:元素对鼠标事件作出响应,并对所有区域都作出响应。

注意事项:

  1. pointer-events 仅适用于可见元素,对于不可见(如 display: none)的元素不起作用。
  2. 对于子元素,父元素的 pointer-events 值会继承给子元素,除非子元素自身有指定不同的 pointer-events 值。
  3. 对于被 pointer-events: none 的元素,当其内部元素被设置为 pointer-events: auto 时,鼠标事件会作用于内部元素,而非穿透到外部元素。
  4. pointer-events 可以用于创建可点击的遮罩层,避免鼠标事件作用于后面的元素。
  5. 具有 pointer-events: none 的元素仍然会触发 CSS 伪类(如 :hover)。

注意事项和取值解释如下所示:

pointer-events 是 CSS 属性,用于控制元素对鼠标事件的响应方式。

以下是 pointer-events 的取值和对应的行为:

  • auto:默认值,元素对鼠标事件作出响应。
  • none:元素不对鼠标事件作出任何响应,鼠标事件会穿透元素,直接作用于底层元素。
  • visiblePainted:元素对鼠标事件作出响应,但只对绘制的内容作出响应,对透明部分不作出响应。
  • visibleFill:元素对鼠标事件作出响应,但只对填充区域作出响应,对非填充区域不作出响应。
  • visibleStroke:元素对鼠标事件作出响应,但只对边框区域作出响应,对内容区域不作出响应。
  • visible:元素对鼠标事件作出响应,并对所有区域都作出响应。

注意事项:

  1. pointer-events 仅适用于可见元素,对于不可见(如 display: none)的元素不起作用。
  2. 对于子元素,父元素的 pointer-events 值会继承给子元素,除非子元素自身有指定不同的 pointer-events 值。
  3. 对于被 pointer-events: none 的元素,当其内部元素被设置为 pointer-events: auto 时,鼠标事件会作用于内部元素,而非穿透到外部元素。
  4. pointer-events 可以用于创建可点击的遮罩层,避免鼠标事件作用于后面的元素。
  5. 具有 pointer-events: none 的元素仍然会触发 CSS 伪类(如 :hover)。

请注意,pointer-events 属性的浏览器兼容性可能会有一些差异,建议在使用时进行兼容性测试和适配。