Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I apply CSS filters ONLY on image sections?

I have a full screen background-image

.bg { 
    left: 0;
    min-height: 100%; 
    min-width: 100%; 
    position: fixed; 
    top: 0; 
    z-index: -1; 
}

and want to apply a CSS filter, personally I would like to use a blur effect, at the same position as my body

.container {
    margin: 0 auto; 
    width: 1000px;
}

Here's an example:

screenshot

I want to write text over the blurred container.

like image 317
Maximilian Fuchs Avatar asked Aug 13 '13 16:08

Maximilian Fuchs


2 Answers

http://jsfiddle.net/QvSng/6/

CSS

body {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    background: url(http://lorempixel.com/420/255) no-repeat center center fixed;
    background-size: cover;
}
body:before {
    left: 0;
    right: 0;
    margin-left:auto;
    margin-right:auto;
    content: "";
    position: absolute;
    height: 100%;
    width: 500px;
    background: url(http://lorempixel.com/420/255)  no-repeat center center fixed;
    background-size: cover;
    z-index: -1;
    filter: blur(5px);
    -webkit-filter: blur(5px);
}

div {
    height: 100%;
    width: 450px;
    margin: 0 auto;
}
like image 74
daniel__ Avatar answered Sep 18 '22 12:09

daniel__


To get the blur effect, use filter: blur() (with vendor prefixes). The blur applies only to the element itself, not to anything underneath it, so you'll need to reference the image within the "blur box" as well as in the background, and use background-position to control the offset so that they line up properly.

.blur {
    background-image: url('http://placekitten.com/400/400');
    background-position: center -100px;
    -webkit-filter: blur(10px);
    -moz-filter: blur(10px);
    -o-filter: blur(10px);
    -ms-filter: blur(10px);
    filter: blur(10px);
    filter: blur(10px);
}

JSFiddle Demo

like image 26
CheeseWarlock Avatar answered Sep 20 '22 12:09

CheeseWarlock