如何在悬停时模糊背景图像而不是文本

How to blur background image on hover but not the text

你好,我刚刚开始网络开发,我一直试图在悬停时模糊 div 的背景图像,但不影响文本。

如您所见,我有一个名为 c1 的 ID,我使用 javascript 函数在悬停时显示文本,效果很好。

现在我想使用 css/javascript 模糊背景图像而不模糊文本。这可能吗?

我的CSS:

#c1 {
    float: left;
    width: 300px;
    padding: 30px;
    margin: 15px;
    background-image: url(images/cd.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    border-radius: 20px;
    height: 150px;
}

#c1:hover {
    -webkit-filter: blur(5px);
}

我的HTML:

<div id="productos">
    <a name="jproductos"></a>
    <ul>
        <div id="c1">
        </div>
    </ul>
</div>

您必须以不同的方式构建 html。如果您制作一个相对容器并将图像作为与文本分开的 div 放置:

<div class="container">
    <div class="image"></div>
    <div class="text">Text</div>
</div>

.container{
    position: relative;
}

.image, .text{
    position: absolute;
    top: 0;
    left: 0;
}

.image{
    -webkit-filter: blur(5px);
}

这样文本和图像就不是 parent/child/same 元素,您可以只对图像进行模糊处理,但仍然让文本看起来就像在图像上一样

#c1 {
 position:relative;
 float: left;
 width: 300px;
 padding: 30px;
 margin: 15px;
 border-radius: 20px;
 height: 150px;
 overflow:hidden;
}

#c1:after{
 content:'';
 display:block;
 position:absolute;
 z-index:-1;
 top:0;
 left:0;
 bottom:0;
 right:0;
 background: url(images/cd.png) no-repeat center;
 background-size: cover;
}

#c1:hover:after{
 -webkit-filter: blur(5px);
}