Martijn Cuppens(与那个 非常奇怪的 div 相同的人!)有一些更具吸引力的 CSS 技巧。 三个示例是关于让子元素触发父元素的事件(几乎就像 :focus-within
的魔法)。
以下是我如何推理的
- 您知道,如果您将元素设为
display: hidden;
,即使您将子元素设为display: block;
,它也没有用——因为它被隐藏是因为它的父元素被隐藏了。 visibility: hidden;
并不适用。 子元素将被隐藏,因为visibility
是继承的,但如果您将其设为visibility: visible;
,它们将再次变得可见。- 这就是
pointer-events
中发生的事情。 如果您将父元素设为pointer-events: none;
,然后将子元素设为pointer-events: auto;
,您就重新启用了指针事件。 然后,当您将鼠标悬停在子元素上时,父元素上的:hover
将被触发(例如),但在父元素内的其他任何地方都不会触发。
并且不要错过 pointer-events: visiblePainted;
😳