css transition opacity fade background

后端 未结 4 601
慢半拍i
慢半拍i 2020-12-09 08:21

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

相关标签:
4条回答
  • 2020-12-09 08:40

    It's not fading to "black transparent" or "white transparent". It's just showing whatever color is "behind" the image, which is not the image's background color - that color is completely hidden by the image.

    If you want to fade to black(ish), you'll need a black container around the image. Something like:

    .ctr {
        margin: 0; 
        padding: 0;
        background-color: black;
        display: inline-block;
    }
    

    and

    <div class="ctr"><img ... /></div>
    
    0 讨论(0)
  • 2020-12-09 08:40

    http://jsfiddle.net/6xJQq/13/

    .container {
        display: inline-block;
        padding: 5px; /*included padding to see background when img apacity is 100%*/
        background-color: black;
        opacity: 1;
    }
    
    .container:hover {
        background-color: red;
    }
    
    img {
        opacity: 1;
    }
    
    img:hover {
        opacity: 0.7;
    }
    
    .transition {
        transition: all .25s ease-in-out;
        -moz-transition: all .25s ease-in-out;
        -webkit-transition: all .25s  ease-in-out;
    }
    
    0 讨论(0)
  • 2020-12-09 08:45

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

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

    0 讨论(0)
  • 2020-12-09 08:48

    Please note that the problem is not white color. It is because it is being transparent.

    When an element is made transparent, all of its child element's opacity; alpha filter in IE 6 7 etc, is changed to the new value.

    So you cannot say that it is white!

    You can place an element above it, and change that element's transparency to 1 while changing the image's transparency to .2 or what so ever you want to.

    0 讨论(0)
提交回复
热议问题