Search code examples
cssbackgroundopacitytransition

css transition opacity fade background


I am doing a transition where it fades into transparent white, when a user is hovering an image.

My problem is that I need to change the color, that it fades to, to black. I have tried just simply adding background:black; to the class that contains the transition, but it does not work unfurtunately, it's still fading into white transparent.

The css code I am using is:

.hover:hover {
  opacity: 0.2;
}

.item-fade {
  background: black;
  opacity: 0.8;
  transition: opacity .25s ease-in-out;
  -moz-transition: opacity .25s ease-in-out;
  -webkit-transition: opacity .25s ease-in-out;
}
<p>Hover image, the white opacity needs to be black :/</p>
<img src="//placehold.it/100x100" class="hover item-fade" />


Solution

  • Wrap your image with a span element with a black background.

    .img-wrapper {
      display: inline-block;
      background: #000;
    }
    
    .img-fade {
      vertical-align: top;
      transition: opacity 0.3s;
      opacity: 1;
    }
    
    .img-fade:hover {
      opacity: 0.2;
    }
    <span class="img-wrapper">
       <img class="img-fade" src="https://via.placeholder.com/100x100/cf5" />
    </span>