我需要使用全尺寸图片作为背景,我需要该图片才能有亮度滤镜。
目前它仅适用于Chrome
和Firefox
,最后一个使用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);
}
Windows
的Safari 5.1.7无法使用此功能,Internet Explorer 11.
我错过了什么?你可以推荐我任何其他方法来实现同样的目标吗?
由于
答案 0 :(得分:5)
您可以使用带有rgba()或hsla()颜色的伪叠加层。在所有浏览器中都有works,对于IE8,您可以使用-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 */
}
答案 1 :(得分:1)
我也遇到了同样的问题。调查结果,找到了IE11的代码。
<svg id="mySvg">
<defs>
<filter id="reduce">
<feComponentTransfer>
<feFuncR type="linear" slope="0.5"/>
<feFuncG type="linear" slope="0.5"/>
<feFuncB type="linear" slope="0.5"/>
</feComponentTransfer>
</filter>
</defs>
<image filter="url(#reduce)" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="test.png" width="800" height="600"/>
</svg>