Javascript 模糊Img';标准普尔;分区';在HTML中使用CSS

Javascript 模糊Img';标准普尔;分区';在HTML中使用CSS,javascript,html,css,Javascript,Html,Css,可以对HTML元素(div&img)应用模糊吗? 我只为iPad开发,所以跨浏览器兼容性不是问题&我可以使用HTML5 CSS3技术 我知道如何模糊文本,但此CSS不会模糊实际的HTML元素或其边框: text-shadow: 0 0 8px #000; color: transparent; 我用谷歌搜索了这个,但在我的浏览器中它不会模糊图像: filter: blur(strength=50); 我认为最好的方法是将同一张图像自身分层几次,然后在叠加的图像上测试不同的位置和不透明度 这是

可以对HTML元素(div&img)应用模糊吗?

我只为iPad开发,所以跨浏览器兼容性不是问题&我可以使用HTML5 CSS3技术

我知道如何模糊文本,但此CSS不会模糊实际的HTML元素或其边框:

text-shadow: 0 0 8px #000;
color: transparent;
我用谷歌搜索了这个,但在我的浏览器中它不会模糊图像:

filter: blur(strength=50);

我认为最好的方法是将同一张图像自身分层几次,然后在叠加的图像上测试不同的位置和不透明度

这是我提出的CSS。请记住,我使用的是
nth child
CSS3选择器(但您似乎对此没有问题):

HTML:



非常有希望。

除了使用
文本阴影
框阴影
技术外,CSS没有模糊功能。但即使有了这些,边界和图像也无法模糊

但是,它可以处理图像


此外,你可能会发现这很有趣。使用预先制作的模糊图像是一种很好的错觉。

我今天看到了一个关于使用CSS
框阴影、
文本阴影、不透明度和颜色模糊内容的很酷的教程

下面是演示:


教程:

Webkit有一个名为
-Webkit-filter
的属性,允许使用模糊技术:
-Webkit-filter:blur(15px)


您只需将其添加到css中,即可获得图像:

    img {
     -webkit-filter: blur(10px);
    -moz-filter: blur(10px);
  }
在下面的示例中,将使用半径为5像素的模糊。使用所有可用的供应商前缀是极其重要的,因此它可以在所有浏览器上运行,并实现了此功能,直到实现“稳定”版本


使用CSS3,我们可以轻松调整图像。但请记住,这不会改变图像。它仅显示调整后的图像

请在此处查看实时演示和完整的源代码

有关更多详细信息,请参阅以下代码

要使图像变为灰色,请执行以下操作:

img {
 -webkit-filter: grayscale(100%);
 -moz-filter: grayscale(100%);
}
要呈现深褐色外观,请执行以下操作:

    img {
     -webkit-filter: sepia(100%);
    -moz-filter: sepia(100%);
}
要调整亮度,请执行以下操作:

 img {
     -webkit-filter: brightness(50%);
     -moz-filter: brightness(50%);  
  }
要调整对比度:

 img {
     -webkit-filter: contrast(200%);
     -moz-filter: contrast(200%);    
}
要模糊图像,请执行以下操作:

    img {
     -webkit-filter: blur(10px);
    -moz-filter: blur(10px);
  }

不久前,我不得不非常彻底地研究这个问题,并提出了一个非常灵活的解决方案,尽管对于某些人的需求来说,这可能有些过头了。我不仅需要模糊图像,还需要各种图像的动态模糊半径、叠加颜色和叠加不透明度。我还需要有一个选项,就是在背景中模糊一幅图像,并在上面覆盖其他元素。这是我能够创建的最好的跨浏览器(和性能)解决方案

首先,我手头上有一个SVG,它的名字叫
blur.SVG
,令人不快。它应用模糊过滤器,如果仔细观察,
stdDeviation
(设置模糊半径)实际上是通过编程方式从传入参数设置到请求资源的URL

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg">
<filter id="blur">
<feGaussianBlur stdDeviation="#{params[:blur]}" />
</filter>
</svg>
你可能想知道为什么我包含了一个
transform:translateZ(0)。唯一的效果是强制渲染硬件加速以保持性能。您可能还想知道为什么没有供应商前缀。如果您愿意,您可以在上查找
filter
之类的内容,但我在这个项目中使用过这些内容。当然,为什么要使用这个SVG进行过滤,而不是像
blur(4px)
?那不是更容易吗?它会的,但是Firefox(在撰写本文时)只支持带有URL的
过滤器
属性

然后,可以将blur mixin应用于包装器类:

.my_wrapper_class {
  @include background_blurred(3, #f9f7f5, 0.7);
}
注意,对于这个方法,我们必须使用一个在样式属性中设置了自定义背景的类,而不是一个带有src的图像标记。您可以根据自己的喜好调整背景位置并覆盖背景大小

<div class="my_wrapper_class">
  <div class="background_blurred" style="background: url('URL OF IMAGE TO BLUR') no-repeat; background-position: 50% 0;"></div>
  <div class="foreground">
    <p>Stuff that should appear above the blurred background and not be blurred.</p>
  </div>
</div>

应该出现在模糊背景之上且不模糊的内容


我被难住了+1.我很想看到一些解决方案。非常有趣+1,但不能使用边框。严格来说,这不是真的,因为还有框阴影,可以在顶部分层模糊图像,而无需参考JS。css确实有模糊过滤器。但在2011年没有;-)这是一个很酷的CSS属性,你可以在这里看到当前的浏览器支持:稳定的Firefox不支持。@Lucio我知道你的评论已经有14个月了,但是Firefox支持
filter:blur
。干得好,朋友!关于标记,@bookcasey,是的,这是一场噩梦,但我们可以从服务器端或借助JS/JQuery动态生成它。所以我想我会用这个。也谢谢你的酷小提琴;)这个解决方案太复杂了,只是“模拟”效果,相反,我们有过滤器来完成这项工作(正如我所指出的)哇@DanielFilho,这个答案已经有6年历史了——为什么对你的答案进行向下投票和转介,而你的答案已经有了更多的向上投票?这看起来很绝望。而且,这个答案其实并没有那么复杂,只是比其他答案更冗长。这并不意味着它本身就是一个糟糕的解决方案,只是一个不同的解决方案,而且我认为在堆栈溢出问题上追求解决方案的完整性是很好的。
@mixin background_blurred($blur_radius:4, $overlay_color:white, $overlay_opacity:0.6) {
  position: relative;
  .background_blurred {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    filter: url('blur.svg#blur?blur=#{$blur_radius}');
    filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='#{$blur_radius}');
    transform: translateZ(0);
    &:after {
      content: '';
      width: 100%;
      height: 100%;
      position: absolute;
      top: 0;
      left: 0;
      background: $overlay_color;
      opacity: $overlay_opacity;
    }
  }
  .foreground {
    width: 100%;
    height: 100%;
    position: relative;
    z-index: 2;
  }
}
.my_wrapper_class {
  @include background_blurred(3, #f9f7f5, 0.7);
}
<div class="my_wrapper_class">
  <div class="background_blurred" style="background: url('URL OF IMAGE TO BLUR') no-repeat; background-position: 50% 0;"></div>
  <div class="foreground">
    <p>Stuff that should appear above the blurred background and not be blurred.</p>
  </div>
</div>