Ik heb een JPEG-bestand dat ik'm gebruik als achtergrondafbeelding voor een zoekpagina, en ik'm gebruik CSS om het in te stellen omdat ik'm werk binnen Backbone.js contexten:
background-image: url("whatever.jpg");
Ik wil een CSS 3 blur filter alleen op de achtergrond toepassen, maar ik'ben niet zeker hoe ik alleen dat ene element moet stijlen. Als ik probeer:
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
filter: blur(5px);
net onder background-image
in mijn CSS, het stijlen van de hele pagina, in plaats van alleen de achtergrond. Is er een manier om alleen de afbeelding te selecteren en daar het filter op toe te passen? Of is er een manier om de vervaging uit te schakelen voor elk ander element op de pagina?
Kijk eens naar deze [pen] (http://codepen.io/aniketpant/pen/DsEve).
Je zult twee verschillende containers moeten gebruiken, één voor de achtergrondafbeelding en de andere voor je inhoud.
In het voorbeeld, heb ik twee containers gemaakt, .background-image
en .content
.
Beiden zijn geplaatst met position: fixed
en left: 0; right: 0;
. Het verschil in weergave komt door de z-index
waarden die verschillend zijn ingesteld voor de elementen.
.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>
Excuses voor de Lorem Ipsum tekst.
Met dank aan Matthew Wilcoxson voor een betere implementatie met behulp van .content:before
http://codepen.io/akademy/pen/FlkzB
Je moet je HTML opnieuw structureren om dit te doen. Je moet het hele element vervagen om de achtergrond te vervagen. Dus als je alleen de achtergrond wilt vervagen, moet dat een eigen element zijn.