Is it possible for the child of a div set to pointer-events: none to have pointer events?

JavascriptHtmlCss

Javascript Problem Overview


Is it possible for the child of a div set to pointer-events: none to have pointer events?

I need the div that holds another div to allow pointer events to pass through, but for the div itself to still have events.

Is this possible?

Javascript Solutions


Solution 1 - Javascript

Yes, it's possible, and you basically just described how. Disable it for the parent and enable it for the child.

pointer-events is supported in almost every browser, including IE11

Please note that pointer-events: all is for SVG only.

For HTML, only auto and none are supported values.

.parent {
  pointer-events: none;
}

.child {
  pointer-events: auto;
}

<div class="parent">
  <a href="#">Parent</a>
  <div class="child">
    <a href="#">Child</a>
  </div>
</div>

Demo: http://jsfiddle.net/4gQkT/

Solution 2 - Javascript

On the child element's style, add

pointer-events: auto;

pointer-events: all didn't work for me, and apparently applies to SVG elements only.

Solution 3 - Javascript

As a possible solution in some cases you can set

height: 0;

to parent element and let child element to overflow

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionfancyView Question on Stackoverflow
Solution 1 - JavascriptBrandonView Answer on Stackoverflow
Solution 2 - JavascriptBensonView Answer on Stackoverflow
Solution 3 - JavascriptLev LukomskyView Answer on Stackoverflow