I am trying to add hover color to this particular div but it dosen't work out, because of the gradient background that is added to get the border-radius working.
I am doing this in a React Component using css-modules .
What is the problem here? I am not an expert at css but will love to know the reason of the problem and how to mitigate it .
.card{ width: 40%; height: 150px; border: 2px solid transparent; background: linear-gradient(#fff,#fff) padding-box, linear-gradient(125deg, #42E4A3, #A383E8) border-box; border-radius:8px; display:inline-block; } .card:hover{ background-color: rgba(0,0,0,0.04); }
<div class="card"> No Hover color red <br/> I am doing this in React a small gist of the problem </div>
Update
After adding the styles as mentioned i get the opposite effect where the border gradient color appears on hover .If i add this i get the color but the b order color then disappears.
The gradient dosen't accept rgba with such low opacity for some reason , what is the reason for this
.card:hover{
background:
linear-gradient(rgba(0,0,0,0.04),rgba(0,0,0,0.04)) padding-box;
} // no border color , when i change the color to rgba opacity it dosent work
rgba(0,0,0,0.1) works but why not rgba(0,0,0,0.04)
You can fix it like that:
.card:hover{
background: red;
}
and it will work =)
or, if you want to keep your gradient border:
.card:hover{
background: linear-gradient(red,red) padding-box,
linear-gradient(125deg, #42E4A3, #A383E8) border-box;
}
If you need a semitransparent color of background, you can re-edit your solution like this ( demo on Codepen ). But anyway you will see on hover bottom background because of semitransparency.
In your :hover
style you should redefine the background
property with the border gradient, just simply replace the white color #fff
with your new color red
.card{ width: 40%; height: 150px; border: 2px solid transparent; background: linear-gradient(#fff,#fff) padding-box, linear-gradient(125deg, #42E4A3, #A383E8) border-box; border-radius:8px; display:inline-block; } .card:hover{ background: linear-gradient(red,red) padding-box, linear-gradient(125deg, #42E4A3, #A383E8) border-box; }
<div class="card"> No Hover color red <br/> I am doing this in React a small gist of the problem </div>
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.