添加第二个背景-悬停图像

时间:2019-02-02 作者:lulufv

我正在使用我的特色图像作为div上的背景图像,我想在悬停时为同一div添加第二个背景图像(我需要它们,因为我想混合它们)。有什么建议吗?

我可以使用常规的html和css来实现这一点,但现在我使用特征图像作为背景,我无法理解它。有什么建议吗?

4 个回复
SO网友:C C

使用单个元素,为特征图像使用伪元素(:before),并使用适当的悬停样式设置其不透明度并显示与基础第二幅图像的混合。我加入了一个渐进的图像转换,只是为了让它看起来更好一点。

html:

<div class="my-image-holder">
    text and other contents we don\'t want affected by opacity
</div>

css:

.my-image-holder {
    position: relative;
    z-index:1;
    width:200px;
    height:200px;
    margin:30px;
    background-image: url(\'//some-url-to-second-image\');
    background-size: contain;
    font-size: 1.2em;
    color: white;
}

.my-image-holder:before {
    z-index:-1;
    position:absolute;
    width:200px;
    height:200px;
    left:0;
    top:0;
    content: url(\'//some-url-to-featured-image\');
    opacity:1.0;
    -webkit-transition: opacity 1s linear;
    -o-transition: opacity 1s linear;
    -moz-transition: opacity 1s linear;
    transition: opacity 1s linear;
}

.my-image-holder:hover:before {
    opacity:0.5;
}

Example JSFiddle

SO网友:Rick Hellewell

如果您想在“悬停”时发生一些事情,可以使用一些CSS来实现。将某个名称的id(因为它们需要唯一,所以CSS只会影响具有该id的div)分配给图像标记,然后将此作为起点:https://www.w3schools.com/howto/howto_css_image_overlay.asp

您还可以使用一些JS来更改内容。但是CSS会起作用。以上链接将为您提供一些想法。

您可能也对这个问题感兴趣https://stackoverflow.com/questions/18813299/changing-image-on-hover-with-css-html , 这与您希望使用此代码执行的操作类似:

<div id="Library"></div>

#Library {
   background-image: url(\'LibraryTransparent.png\');
   height: 70px;
   width: 120px;
}

#Library:hover {
   background-image: url(\'LibraryHoverTrans.png\');
}
第一个CSS将为该div设置背景图像,第二个CSS将更改悬停时的背景图像。第一个链接还引用了一些过渡内容,因此您可以淡入/淡出。

SO网友:CK MacLeod

可以将多个背景图像指定给同一个div。

#sample-div {
    background-image: url(/folder/image.jpg);
}
#sample-div:hover {
    background-image: url(/folder/image.jpg), url(/folder/image2.jpg);
}
可以分别为每个图像指定大小、位置和其他属性。请参见此处的基本信息:https://www.w3schools.com/css/css3_backgrounds.asp. 但是,如果要实现平滑过渡,可能需要伪元素或“常规”图像的绝对定位等,如其他答案中所述。

SO网友:lulufv

谢谢大家!我真的想出来了,而且很简单。我刚刚添加了两个背景图像,并将背景混合模式从“正常”更改为“悬停时倍增”。

相关推荐

与控件有关的WordPress CSS问题

我应该在哪里以及如何开始修复糟糕的设计问题?我不能改变主题,我必须学会如何修复当前主题,我想是通过CSS?如何正确对齐所有文本框,如何更改框(顶部为灰色)颜色和按钮颜色?这些都是通过短代码在简单页面中实现的。谢谢