我目前不知道有任何方式可以直接影响您所寻求的背景图像的不透明度。两种可能的解决方法是:
1. 纯 CSS3 方式(还没有很好的支持)
使用伪元素来提供background-image
允许opacity
使用并将整个东西保持为纯 css,但它不起作用webkit
(显然不支持伪元素上的动画),仅在moz
扩展上(我无法测试 IE10 ...对此的反馈会有所帮助)。比较 Firefox 和 Chrome 的这个 fiddle,它使用了这个代码:
HTML
<div class="bkgAnimate">Foreground text</div>
CSS
.bkgAnimate {
width: 300px; /*only for demo*/
height: 200px; /*only for demo*/
position: relative;
z-index: 1; /* make a local stacking context */
}
.bkgAnimate:after {
content: '';
position: absolute;
top:0;
right: 0;
bottom: 0;
left: 0;
background: url(src="your/image/path/file.png") no-repeat;
z-index: -1;
-webkit-animation: fontbulger 3s infinite;
-moz-animation: fontbulger 3s infinite;
-ms-animation: fontbulger 3s infinite;
}
@-webkit-keyframes fontbulger {
0% { opacity: 1; }
30% { opacity: 0.5; }
100% { opacity: 1; }
}
@-moz-keyframes fontbulger {
0% { opacity: 1; }
30% { opacity: 0.5; }
100% { opacity: 1; }
}
@-ms-keyframes fontbulger {
0% { opacity: 1; }
30% { opacity: 0.5; }
100% { opacity: 1; }
}
2. 杂乱无章的 HMTL 解决方案(更跨浏览器友好)
更改为将实际img
标签作为背景放置似乎是唯一webkit
的行为方式,正如这个小提琴所示。但这可能不适合您。代码与上面类似,除了:
HTML
<div class="bkgAnimate">Foreground text
<img class="bkg" src="your/image/path/file.png"/>
</div>
CSS 从上面改变
:after
将选择器更改为并从该代码.bkgAnimate .bkg
中删除content
and属性。background