如何在图像悬停时使用不透明度?

时间:2019-04-20 09:59:15

标签: css

当我在图像悬停上使用不透明度时。它只会变亮或变暗,而不会变暗。

我试图增加不透明度的数量,使其变暗,但不成功。下面是我试图使图像在悬停时变暗的代码块:

<style>
.category-product img {
    display: block;
    margin-left: auto;
    margin-right: auto
}

.category-product img:hover {
    opacity: 0.5;   
}
</style>
<div class="category-product">
    <img src="hinh/paris.jpg" data-img="product-image-1">
</div>

Image of opacity applied on my current try enter image description here 我希望图像在悬停时会变暗。

Expected result

enter image description here

3 个答案:

答案 0 :(得分:1)

他们使用不透明度的方法是您尝试的另一面。 1 opacity表示元素是完全不透明的,“ opacity:.5”表示一半是不透明的,因此您将看到元素是半透明的,并且图像后面的元素的颜色也就是结果。

一种快速,更好,更容易获得这种效果的方法是使用CSS的过滤器属性。

<style>
.category-product img {
    display: block;
    margin-left: auto;
    margin-right: auto;
    transition: all .3s;/* I put this to get smooth transition */
}

// Then at hover, you can do a filter: brightness and set a lower value

.category-product img:hover {
   filter: brightness(0.4);
}
</style>

<div class="category-product">
    <img src="http://lorempixel.com/output/sports-q-c-640-480-7.jpg" data-img="product-image-1">
</div>

以下是Codepen中的示例:

https://codepen.io/ChemaAlfonso/pen/ROJNev

希望对您有帮助

答案 1 :(得分:0)

样式不透明度= 0.5将使图像变暗,但不会变暗。为了使图片在悬停时变暗,我们将包含图片的背景div设置为暗。因此,当鼠标悬停时,图片将变暗并且具有黑色背景,这会使图片看起来更暗。

<style>
.category-product {
    background: black;
}

.category-product img {
    display: block;
    margin-left: auto;
    margin-right: auto
}

.category-product img:hover {
    opacity: 0.5;   
}
</style>
<div class="category-product">
    <img src="hinh/paris.jpg" data-img="product-image-1">
</div>

在上面的代码中,我只是将包含div的背景设置为黑色。

答案 2 :(得分:0)

  

在鼠标悬停时使用background-color:rgba(black,0.5);而不是不透明度:0.5;

<style>
    .category-product img {
        display: block;
        margin-left: auto;
        margin-right: auto
    }

    .category-product img:hover {
       background-color: rgba(black, 0.5);  
    }
    </style>
    <div class="category-product">
        <img src="hinh/paris.jpg" data-img="product-image-1">
    </div>