且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何将CSS 3模糊过滤器应用于背景图片

更新时间:2023-01-26 17:54:30

检查这个是否有办法href =http://codepen.io/aniketpant/pen/DsEve>笔



您必须使用两个不同的容器,一个用于



在示例中,我创建了两个容器, .background-image $ c $ / code>和 left:0; right:0; 。显示它们的区别来自于对元素设置不同的 z-index 值。



strong> HTML



 < 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,eleinend rhoncus metus。 Ut turpis massa,sollicitudin sit amet molestie a,posuere sit amet nisl。毛里求斯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 iipsum。 Etiam at nisl eu felis vulputate porta。< / p>
< p> Fusce ut placerat eros。 Aliquam导致了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。马尾,it。。。。。。。。。。。。。。。。苜蓿。南方。 Sed lotis et lorem在sagittis。 < / p>
< / div>

CSS

  .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;
}

对Lorem Ipsum 文字表示歉意。



更新



感谢 .content:before http://codepen.io/akademy/pen/FlkzB


I have a JPEG file that I'm using as a background image for a search page, and I'm using CSS to set it because I'm working within Backbone.js contexts:

background-image: url("whatever.jpg");

I want to apply a CSS 3 blur filter only to the background, but I'm not sure how to style just that one element. If I try:

-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
filter: blur(5px);

just underneath background-image in my CSS, it styles the whole page, rather than just the background. Is there a way to select just the image and apply the filter to that? Alternatively, is there a way to just turn the blur off for every other element on the page?

Check out this pen.

You will have to use two different containers, one for the background image and the other for your content.

In the example, I have created two containers, .background-image and .content.

Both of them are placed with position: fixed and left: 0; right: 0;. The difference in displaying them comes from the z-index values which have been set differently for the elements.

HTML

<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>

CSS

.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;
}

Apologies for the Lorem Ipsum Text.

Update

Thanks to Matthew Wilcoxson for a better implementation using .content:before http://codepen.io/akademy/pen/FlkzB