- How to apply a CSS filter to a background image
- 22 Answers 22
- How to Add a Blur Filter to the Background Image
- Create HTML
- Add CSS
- Example of adding a blurred background image:
- Result
- W3DOCS
- Blurred Background Image
- Example of adding a blurred background image using the :checked selector:
- backdrop-filter
- Try it
- Syntax
- Values
- Formal definition
- Formal syntax
- Examples
- CSS
- HTML
- Result
- Specifications
- Browser compatibility
- See also
- Found a content problem with this page?
- MDN
- Support
- Our communities
- Developers
How to apply a CSS filter to a background image
I have a JPEG file that I’m using as a background image for a search page, and I’m using CSS to set it because I’m working within Backbone.js contexts:
background-image: url("whatever.jpg");
I want to apply a CSS 3 blur filter only to the background, but I’m not sure how to style just that one element. If I try:
-webkit-filter: blur(5px); -moz-filter: blur(5px); -o-filter: blur(5px); -ms-filter: blur(5px); filter: blur(5px);
just underneath background-image in my CSS, it styles the whole page, rather than just the background. Is there a way to select just the image and apply the filter to that? Alternatively, is there a way to just turn the blur off for every other element on the page?
22 Answers 22
You will have to use two different containers, one for the background image and the other for your content.
In the example, I have created two containers, .background-image and .content .
Both of them are placed with position: fixed and left: 0; right: 0; . The difference in displaying them comes from the z-index values which have been set differently for the elements.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis aliquam erat in ante malesuada, facilisis semper nulla semper. Phasellus sapien neque, faucibus in malesuada quis, lacinia et libero. Sed sed turpis tellus. Etiam ac aliquam tortor, eleifend rhoncus metus. Ut turpis massa, sollicitudin sit amet molestie a, posuere sit amet nisl. Mauris tincidunt cursus posuere. Nam commodo libero quis lacus sodales, nec feugiat ante posuere. Donec pulvinar auctor commodo. Donec egestas diam ut mi adipiscing, quis lacinia mauris condimentum. Quisque quis odio venenatis, venenatis nisi a, vehicula ipsum. Etiam at nisl eu felis vulputate porta.
Fusce ut placerat eros. Aliquam consequat in augue sed convallis. Donec orci urna, tincidunt vel dui at, elementum semper dolor. Donec tincidunt risus sed magna dictum, quis luctus metus volutpat. Donec accumsan et nunc vulputate accumsan. Vestibulum tempor, erat in mattis fringilla, elit urna ornare nunc, vel pretium elit sem quis orci. Vivamus condimentum dictum tempor. Nam at est ante. Sed lobortis et lorem in sagittis. In suscipit in est et vehicula.
Apologies for the Lorem Ipsum text.
How to Add a Blur Filter to the Background Image
In this snippet, you can find out how to apply a blur filter to the background image. It is very simple and fast!
Follow up the steps and create a blurred background image for your website.
Create HTML
- Begin by creating a element with a class of «image».
- Create another element with a class name «text». Here, also add , , and elements.
div class="image"> div> div class="text"> h1>W3DOCS h1> h2>Blurred Background Image h2> p>Snippet p> div>
Add CSS
- Add the link of the image with the background-image property.
- Set the height of the image with the height property, then specify the position of the image with the background-position property. Here, we set the «center» value.
- After applying the background-position , make the image not repeated by setting the background-repeat property to «no-repeat».
- Specify the background-size into «cover», which scales background image as large as possible to cover all the background area.
- Use the filter property to make our image blur. The filter property has the «blur» value, which applies blur on an image. It is specified in pixels. The larger the value, the more blur will be applied. We set it to «5px».
Do not forget to add -Webkit- for Safari, Google Chrome, and Opera (newer versions), -Moz- for Firefox, -o- for older versions of Opera with the filter property.
Here is what we have. We’re going close to the end!
.image < background-image: url("/uploads/media/default/0001/05/15552fb22caf79be6cc2c60b9a1afe9016889422.jpeg"); height: 100%; background-position: center; background-repeat: no-repeat; background-size: cover; filter: blur(5px); -webkit-filter: blur(5px); -moz-filter: blur(5px); -o-filter: blur(5px); -ms-filter: blur(5px); >
So, half of the work is done. Now, style the text by using the color, font-weight, border and other properties.
.text < color: #eeeeee; font-weight: bold; border: 3px solid #cccccc; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 2; width: 80%; padding: 20px; text-align: center; >
Example of adding a blurred background image:
html> html> head> title>Title of the document title> style> body, html < height: 100%; margin: 0; font-family: Arial, Helvetica, sans-serif; > h2 < font-size: 30px; > .image < background-image: url("/uploads/media/default/0001/05/15552fb22caf79be6cc2c60b9a1afe9016889422.jpeg"); height: 100%; background-position: center; background-repeat: no-repeat; background-size: cover; filter: blur(5px); -webkit-filter: blur(5px); -moz-filter: blur(5px); -o-filter: blur(5px); -ms-filter: blur(5px); > .text < color: #eeeeee; font-weight: bold; border: 3px solid #cccccc; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; padding: 20px; text-align: center; > style> head> body> div class="image"> div> div class="text"> h1>W3DOCS h1> h2>Blurred Background Image h2> p>Snippet p> div> body> html>
Result
W3DOCS
Blurred Background Image
Let’s see another example with the blurred background image.
Example of adding a blurred background image using the :checked selector:
html> html> head> title>Title of the document title> style> .background-image < position: fixed; left: 0; right: 0; z-index: 1; display: block; background-image: url(" /uploads/media/default/0001/01/4982c4f43023330a662b9baed5a407e391ae6161.jpeg"); width: 1200px; height: 800px; -webkit-filter: blur(5px); -moz-filter: blur(5px); -o-filter: blur(5px); -ms-filter: blur(5px); filter: blur(5px); > .content < position: fixed; left: 0; right: 0; z-index: 9999; margin-left: 20px; margin-right: 20px; color: #fff; > style> head> body> h2>:checked selector example h2> div class="background-image"> div> div class="content"> p> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis aliquam erat in ante malesuada, facilisis semper nulla semper. Phasellus sapien neque, faucibus in malesuada quis, lacinia et libero. Sed sed turpis tellus. Etiam ac aliquam tortor, eleifend rhoncus metus. Ut turpis massa, sollicitudin sit amet molestie a, posuere sit amet nisl. Mauris tincidunt cursus posuere. Nam commodo libero quis lacus sodales, nec feugiat ante posuere. Donec pulvinar auctor commodo. Donec egestas diam ut mi adipiscing, quis lacinia mauris condimentum. Quisque quis odio venenatis, venenatis nisi a, vehicula ipsum. Etiam at nisl eu felis vulputate porta. p> p> Fusce ut placerat eros. Aliquam consequat in augue sed convallis. Donec orci urna, tincidunt vel dui at, elementum semper dolor. Donec tincidunt risus sed magna dictum, quis luctus metus volutpat. Donec accumsan et nunc vulputate accumsan. Vestibulum tempor, erat in mattis fringilla, elit urna ornare nunc, vel pretium elit sem quis orci. Vivamus condimentum dictum tempor. Nam at est ante. Sed lobortis et lorem in sagittis. In suscipit in est et vehicula. p> div> body> html>
backdrop-filter
The backdrop-filter CSS property lets you apply graphical effects such as blurring or color shifting to the area behind an element. Because it applies to everything behind the element, to see the effect you must make the element or its background at least partially transparent.
Try it
Syntax
/* Keyword value */ backdrop-filter: none; /* URL to SVG filter */ backdrop-filter: url(commonfilters.svg#filter); /* values */ backdrop-filter: blur(2px); backdrop-filter: brightness(60%); backdrop-filter: contrast(40%); backdrop-filter: drop-shadow(4px 4px 10px blue); backdrop-filter: grayscale(30%); backdrop-filter: hue-rotate(120deg); backdrop-filter: invert(70%); backdrop-filter: opacity(20%); backdrop-filter: sepia(90%); backdrop-filter: saturate(80%); /* Multiple filters */ backdrop-filter: url(filters.svg#filter) blur(4px) saturate(150%); /* Global values */ backdrop-filter: inherit; backdrop-filter: initial; backdrop-filter: revert; backdrop-filter: revert-layer; backdrop-filter: unset;
Values
No filter is applied to the backdrop.
Formal definition
Initial value | none |
---|---|
Applies to | all elements; In SVG, it applies to container elements excluding the element and all graphics elements |
Inherited | no |
Computed value | as specified |
Animation type | a filter function list |
Formal syntax
backdrop-filter =
none |
=
[ | ]+
=
|
|
|
|
|
|
|
|
|
=
url( * ) |
src( * )
=
blur( ? )
=
brightness( [ | ]? )
=
contrast( [ | ]? )
=
drop-shadow( [ ? && ] )
=
grayscale( [ | ]? )
=
hue-rotate( [ | ]? )
=
invert( [ | ]? )
=
opacity( [ | ]? )
=
sepia( [ | ]? )
=
saturate( [ | ]? )
Examples
CSS
.box background-color: rgb(255 255 255 / 0.3); backdrop-filter: blur(10px); > body background-image: url("anemones.jpg"); >
html, body height: 100%; width: 100%; > .container background-size: cover; align-items: center; display: flex; justify-content: center; height: 100%; width: 100%; > .box border-radius: 5px; font-family: sans-serif; text-align: center; max-width: 50%; max-height: 50%; padding: 20px 40px; >
HTML
div class="container"> div class="box"> p>backdrop-filter: blur(10px)p> div> div>
Result
Specifications
Browser compatibility
BCD tables only load in the browser
See also
Found a content problem with this page?
This page was last modified on May 31, 2023 by MDN contributors.
Your blueprint for a better internet.
MDN
Support
Our communities
Developers
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.