Eu tenho um arquivo JPEG que I'm usando como imagem de fundo para uma página de busca, e I'm usando CSS para configurá-lo porque I'm trabalhando dentro dos contextos Backbone.js:
background-image: url("whatever.jpg");
Eu quero aplicar um filtro de borrão CSS 3 somente ao fundo, mas I'não tenho certeza de como estilizar apenas esse elemento. Se eu tentar:
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
filter: blur(5px);
logo abaixo da imagem de fundo
no meu CSS, ele estiliza a página inteira, ao invés de apenas o fundo. Existe uma forma de seleccionar apenas a imagem e aplicar o filtro a isso? Alternativamente, existe uma maneira de apenas desligar o borrão para cada outro elemento da página?
Confira esta caneta.
Você terá que usar dois recipientes diferentes, um para a imagem de fundo e outro para o seu conteúdo.
No exemplo, criei dois recipientes, .background-image' e
.content'.
Ambos são colocados com posição: fixo
e esquerda: 0; direita: 0;
. A diferença em exibi-los vem dos valores z-index
que foram definidos de forma diferente para os elementos.
.background-image {
position: fixed;
left: 0;
right: 0;
z-index: 1;
display: block;
background-image: url('http://666a658c624a3c03a6b2-25cda059d975d2f318c03e90bcf17c40.r92.cf1.rackcdn.com/unsplash_527bf56961712_1.JPG');
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;
}
<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>
Desculpe pelo texto do Lorem Ipsum.
Obrigado a Matthew Wilcoxson por uma melhor implementação utilizando `.content:before' http://codepen.io/akademy/pen/FlkzB
Você precisa reestruturar seu HTML para poder fazer isso. Você tem que desfocar o elemento inteiro para desfocar o fundo. Então se você quer desfocar apenas o fundo, ele tem que ser o seu próprio elemento.