Home  >  Article  >  Web Front-end  >  How to Prevent a Parent Element\'s Hover Effect from Triggering When Hovering Over a Child Element?

How to Prevent a Parent Element\'s Hover Effect from Triggering When Hovering Over a Child Element?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 04:05:31270browse

How to Prevent a Parent Element's Hover Effect from Triggering When Hovering Over a Child Element?

Hover Effect on Parent and Child Elements

To address the challenge of disabling a parent element's hover effect when the cursor moves over a nested child element, let's consider the following solution:

CSS :has Selector (introduced in 2024)

With the introduction of the CSS :has selector, you can directly style a parent element based on the hover state of its child. For example:

.parent:has(.child:hover) {
    background: normal;
}

This code ensures that when the cursor hovers over the child element with the class "child," the background color of the parent element with the class "parent" returns to its original state.

Sibling Element Trick

Prior to the :has selector, a workaround was to use a sibling element:

<div class="parent">
    <div class="sibling"></div>
    <div class="child"></div>
</div>

The sibling element is positioned using absolute positioning to overlap the child element. When you hover over the child element, the sibling element's hover effect is activated, overriding the parent element's hover effect.

.child:hover ~ .sibling {
    background: #FFF; // Override parent's background color
}

Limitations

Note that these solutions rely on the structure of the nested elements and may not work in all cases.

The above is the detailed content of How to Prevent a Parent Element\'s Hover Effect from Triggering When Hovering Over a Child Element?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn