你可以用 CSS 指针事件做的事情

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 提供适合您旅程每个阶段的云产品。 立即开始使用 $200 的免费积分!

Martijn Cuppens(与那个 非常奇怪的 div 相同的人!)有一些更具吸引力的 CSS 技巧。 三个示例是关于让子元素触发父元素的事件(几乎就像 :focus-within 的魔法)。

以下是我如何推理的

  1. 您知道,如果您将元素设为 display: hidden;,即使您将子元素设为 display: block;,它也没有用——因为它被隐藏是因为它的父元素被隐藏了。
  2. visibility: hidden; 并不适用。 子元素将被隐藏,因为 visibility 是继承的,但如果您将其设为 visibility: visible;,它们将再次变得可见。
  3. 这就是 pointer-events 中发生的事情。 如果您将父元素设为 pointer-events: none;,然后将子元素设为 pointer-events: auto;,您就重新启用了指针事件。 然后,当您将鼠标悬停在子元素上时,父元素上的 :hover 将被触发(例如),但在父元素内的其他任何地方都不会触发。

并且不要错过 pointer-events: visiblePainted; 😳

直接链接 →