Bootstrap use blackout when it shows modal dialog. How I make blur effect on entire background?
Asked
Active
Viewed 1.2e+01k times
38
-
2To save readers some time: The only way seems to be to blur the actual content. There seems to be no (simple) way to put a "blurry glass layer" over content and make everything behind that layer blurry. Also blurring the whole body is not an option as you cannot "unblur" your modal window. – BlaM May 23 '18 at 13:51
6 Answers
60
You need to alter the structure of your document first. It should look something like this
<body>
<div class="supreme-container">all your content goes here except for the modal</div>
<div id="myModal" class="modal fade">This is your modal.</div>
</body>
And then in css
body.modal-open .supreme-container{
-webkit-filter: blur(1px);
-moz-filter: blur(1px);
-o-filter: blur(1px);
-ms-filter: blur(1px);
filter: blur(1px);
}

lucian
- 823
- 1
- 8
- 12
-
1There's a way to make it work in IE and Firefox detailed [here](http://stackoverflow.com/a/15813429/1563940). I don't know for sure that it works, though. – lucian Oct 26 '13 at 08:17
-
36
If you are using boostrap then your content is already in some kind of container. So this works for me without the need to alter may HTML or any additional JS:
.modal-open .container-fluid, .modal-open .container {
-webkit-filter: blur(5px) grayscale(90%);
}

Gabriel Bratescu
- 389
- 3
- 4
-
8
-
3I tried this one, but did not really do the trick (I'm using React and React Bootstrap). What I did based on your answer and worked for me: `body.modal-open #root { -webkit-filter: blur(5px) grayscale(90%); }` – Thomas Vuillaume Aug 17 '17 at 07:47
18
For me I was Opening One Modal after another so No solution were working on Second modal and below CSS Worked on every time in every modal:
.modal-backdrop{
backdrop-filter: blur(5px);
background-color: #01223770;
}
.modal-backdrop.in{
opacity: 1 !important;
}

Muhammad Bilal
- 497
- 1
- 5
- 12
9
I think the easiest way to achieve this is to apply a blur
class to background elements using jQuery when the modal is open. Remove blur
when the modal is closed...
.blur {
box-shadow: 0px 0px 20px 20px rgba(255,255,255,1);
text-shadow: 0px 0px 10px rgba(51, 51, 51, 0.9);
transform: scale(0.9);
opacity: 0.6;
}

Carol Skelly
- 351,302
- 90
- 710
- 624
5
With Bootstrap 4 this CSS snippet did the trick for me:
.modal.fade.show {
backdrop-filter: blur(5px);
}

gil.fernandes
- 12,978
- 5
- 63
- 76
0
For me, the following solution is working fine
.modal-open .container-fluid, .modal-open .container {
-webkit-filter: blur(1px);
-moz-filter: blur(1px);
-o-filter: blur(1px);
-ms-filter: blur(1px);
filter: blur(1px);
}

Sachin from Pune
- 656
- 8
- 19