Aquí hay una solución que funciona con fondos fijos, si tiene un fondo fijo y tiene algunos elementos superpuestos y necesita fondos borrosos para ellos, esta solución funciona:
Imagen tenemos este sencillo HTML:
<body> <!-- or any wrapper -->
<div class="content">Some Texts</div>
</body>
Un fondo fijo para <body>
o el elemento contenedor:
body {
background-image: url(http://placeimg.com/640/360/any);
background-size: cover;
background-repeat: no-repeat;
background-attachment: fixed;
}
Y aquí, por ejemplo, tenemos un elemento superpuesto con un fondo blanco transparente:
.content {
background-color: rgba(255, 255, 255, 0.3);
position: relative;
}
Ahora necesitamos usar exactamente la misma imagen de fondo de nuestro contenedor para nuestros elementos de superposición también, la uso como una :before
clase psuedo:
.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;
}
Dado que el fondo fijo funciona de la misma manera tanto en el envoltorio como en los elementos superpuestos, tenemos el fondo exactamente en la misma posición de desplazamiento del elemento superpuesto y simplemente podemos desenfocarlo. Aquí hay un violín que funciona, probado en Firefox, Chrome, Opera y Edge: https://jsfiddle.net/0vL2rc4d/
NOTA: En Firefox hay un error que hace que la pantalla parpadee al desplazarse y hay fondos borrosos fijos. si hay alguna solución, avísame
CSS filter
no es compatible con Firefox, no debería usarlo.