Вот решение, которое работает с фиксированным фоном, если у вас есть фиксированный фон и у вас есть некоторые наложенные элементы, и вам нужен размытый фон для них, это решение работает:
Изображение у нас есть этот простой 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, вам не следует его использовать.