Cómo aplicar un filtro CSS a una imagen de fondo
Tengo un archivo JPEG que estoy usando como imagen de fondo para una página de búsqueda, y estoy usando CSS para establecerlo porque estoy trabajando dentro de contextos Backbone.js:
background-image: url("whatever.jpg");
Quiero aplicar un filtro de desenfoque CSS 3 sólo al fondo, pero no estoy seguro de cómo estilizar sólo ese elemento. Si lo intento:
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
filter: blur(5px);
justo debajo de background-image
en mi CSS, se estiliza toda la página, en lugar de sólo el fondo. ¿Hay alguna manera de seleccionar sólo la imagen y aplicar el filtro a eso? O bien, ¿hay una manera de desactivar el desenfoque para todos los demás elementos de la página?
449
3
Mira este bolígrafo.
Tendrás que utilizar dos contenedores diferentes, uno para la imagen de fondo y otro para tu contenido.
En el ejemplo, he creado dos contenedores,
.background-image
y.content
.Ambos están colocados con
position: fixed
yleft: 0; right: 0;
. La diferencia en la visualización viene de los valores dez-index
que se han establecido de manera diferente para los elementos.begin snippet: js hide: false console: true babel: false -->
Fin del fragmento;
Disculpas por el texto Lorem Ipsum.
Actualización
Gracias a Matthew Wilcoxson por una mejor implementación usando
.content:before
http://codepen.io/akademy/pen/FlkzBPara ello, debe reestructurar su HTML. Tienes que desenfocar todo el elemento para poder desenfocar el fondo. Así que si quieres desenfocar sólo el fondo, tiene que ser su propio elemento.
En la pestaña
.content
en CSS cámbialo aposition:absolute
. De lo contrario, la página renderizada no será desplazable.