A trick is to create another layer using the child element on hover to simulate the non-changing of the parent background.
Here is an example with box-shadow
(On hover of child, change background color of parent container (CSS only))
.parent {
background-color: #cde;
width: 100%;
height: 100px;
position: relative;
overflow:hidden;
}
.parent:hover {
background-color: black;
}
.child {
position: absolute;
left: 50%;
top: 50%;
padding: 10px;
background-color: #ff0000;
}
.child:hover {
background-color: yellow;
box-shadow:0 0 0 1000px #cde;
}
<div class="parent">
<span class="child">
Click
</span>
</div>