Ось рішення, яке працює з фіксованим фоном, якщо у вас фіксований фон і у вас є деякі накладені елементи і вам потрібні затуманені фони для них, це рішення працює:
Зображення у нас є таким простим 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
клас 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;
}
Оскільки фіксований фон працює однаково як в обгортковому, так і в накладеному елементах, ми маємо фон у абсолютно однаковому положенні прокрутки накладеного елемента, і ми можемо його просто розмити. Ось робоча загадка, перевірена в Firefox, Chrome, Opera та Edge: https://jsfiddle.net/0vL2rc4d/
ПРИМІТКА. У Firefox є помилка, яка робить мерехтіння екрана під час прокрутки, і є фіксовані розмиті фони. якщо є якісь виправлення, повідомте мене
CSS filter
не підтримується у Firefox, ви не повинні ним користуватися.