Ho un file JPEG che sto usando come immagine di sfondo per una pagina di ricerca, e sto usando i CSS per impostarlo perché sto lavorando nei contesti di Backbone.js:
background-image: url("whatever.jpg");
Voglio applicare un filtro di sfocatura CSS 3 solo allo sfondo, ma non sono sicuro di come fare lo stile solo per quell'elemento. Se provo:
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
filter: blur(5px);
appena sotto background-image
nel mio CSS, stilizza l'intera pagina, piuttosto che solo lo sfondo. C'è un modo per selezionare solo l'immagine e applicare il filtro a quella? In alternativa, c'è un modo per disattivare la sfocatura per ogni altro elemento della pagina?
Guarda questa penna.
Dovrai usare due contenitori diversi, uno per l'immagine di sfondo e l'altro per il tuo contenuto.
Nell'esempio, ho creato due contenitori, .background-image
e .content
.
Entrambi sono posizionati con position: fixed
e left: 0; right: 0;
. La differenza nella loro visualizzazione deriva dai valori di z-index
che sono stati impostati diversamente per gli elementi.
.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>
Mi scuso per il testo Lorem Ipsum.
Grazie a Matthew Wilcoxson per una migliore implementazione usando .content:before
http://codepen.io/akademy/pen/FlkzB
Devi ristrutturare il tuo HTML per fare questo. Devi offuscare l'intero elemento per offuscare lo sfondo. Quindi se vuoi offuscare solo lo sfondo, deve essere un elemento a sé stante.