这是一个适用于固定背景的解决方案,如果您具有固定的背景并且有一些重叠的元素,并且需要模糊的背景,则此解决方案有效:
图片,我们有这个简单的HTML:
<body> <!-- or any wrapper -->
<div class="content">Some Texts</div>
</body>
<body>
或包装元素的固定背景:
body {
background-image: url(http://placeimg.com/640/360/any);
background-size: cover;
background-repeat: no-repeat;
background-attachment: fixed;
}
例如,这里有一个带有白色透明背景的叠加元素:
.content {
background-color: rgba(255, 255, 255, 0.3);
position: relative;
}
现在,我们也需要为覆盖元素使用与包装器完全相同的背景图像,我将其用作:before
伪类:
.content:before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
filter: blur(5px);
background-image: url(http://placeimg.com/640/360/any);
background-size: cover;
background-repeat: no-repeat;
background-attachment: fixed;
}
由于固定的背景在包装元素和重叠元素中的工作方式相同,因此背景与重叠元素的滚动位置完全相同,我们可以对其进行简单的模糊处理。这是一个有效的小提琴,已经在Firefox,Chrome,Opera和Edge中进行了测试:https : //jsfiddle.net/0vL2rc4d/
注意:在firefox中,有一个错误使滚动时屏幕闪烁,并且固定的背景模糊。如果有任何解决办法,请告诉我
CSS filter
-Firefox不支持,您不应该使用它。