Как изменить цвет фона внутри дочернего элемента div при наведении курсора?
- Наведите указатель мыши на
.parentи изменяется цвет фона (работает). - Наведите указатель мыши на '.child' и изменяется цвет фона (работает).
- Я хочу навести курсор на
.childи изменить только цвет фона.childКак мне это сделать?
.parent {
background-color: #cde;
width: 100%;
position: relative;
height: 100px;
}
.parent:hover {
background-color: black;
}
.child {
float: right;
position: absolute;
left: 50%;
top: 50%;
padding: 10px;
background-color: #ff0000;
}
.child:hover {
background-color: yellow;
}
<div class="parent">
<span class="child">
Click
</span>
</div>
Свободный перевод вопроса how to change background color inside element of div on hover effect? от участника @Aziz Erel.
Ответы (1 шт):
Автор решения: Alexandr_TT
→ Ссылка
Трюк состоит в том, чтобы создать еще один слой, используя дочерний элемент при наведении курсора, чтобы имитировать неизменность родительского фона.
Вот пример с 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>
Свободный перевод ответа от участника @Temani Afif.