使用css在img上使用Crossbrowser亮度滤镜

cod*_*iaf 6 html css svg cross-browser

我需要使用全尺寸图片作为背景,我需要该图片有一个亮度滤镜.

现在它只用于ChromeFirefox最后一个使用svg.

这就是我所拥有的:

img.fullscreenIMG 
{
   display:block;
   position:absolute;
   z-index:1;
   filter: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' ><filter id='bright30'><feComponentTransfer><feFuncR type='linear' slope='0.30'/><feFuncG type='linear' slope='0.30' /><feFuncB type='linear' slope='0.30' /></feComponentTransfer></filter></svg>#bright30");
   filter: brightness(0.6);
    -webkit-filter: brightness(0.6);
    -moz-filter: brightness(0.6);
    -o-filter: brightness(0.6);
    -ms-filter: brightness(0.6);
}
Run Code Online (Sandbox Code Playgroud)

Safari 5.1.7 for Windows也不适用于此Internet Explorer 11.

我错过了什么?你能推荐我任何其他方法来实现同样的目标吗?

谢谢

小智 6

You can use a pseudo overlay with rgba() or hsla() color. This works in all browsers, for IE8 you can use -ms-filter.

body {
    width: 100%; height: 100%;    
    background: url(#bgimage) no-repeat center top/cover fixed;
}
body:before {
    position: absolute; 
    z-index: 2;
    display: block; 
    content: "";
    top: 0; right: 0; bottom: 0; left: 0;  
    background: hsla(0,0%,0%,0.5);          /*adjust brightness here */
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/F79H8/

  • 这不是亮度,而是亮度. (2认同)