放弃 Oscar 的好解决方案(谢谢!),这是我使用 SASS/Compass 实现浏览器前缀自动化的方法
@include background( linear-gradient( color-stops(rgba(255, 66, 78, 0.25), rgba(255, 66, 78, 0.25)) ), image-url('/img/cardboard_flat.png') );
这支持 Webkit、Firefox,但不支持 IE9(因为渐变)。然后我想起了用于生成 PNG 的 compass rgbapng Ruby gem:https://github.com/aaronrussell/compass-rgbapng
@include background( png_base64( rgba(255, 66, 78, 0.25) ), image-url('/img/cardboard_flat.png') );
现在,它支持 IE9+ 和其他支持多背景的浏览器。
如果您仍然需要 IE8 支持,您可以使用多背景 polyfill,或者设置 ::after 伪元素的样式并绝对定位它,z-index 为 -1:
html {
height: 100%;
}
body {
background: url('/img/cardboard_flat.png');
position: relative;
padding: 1px 0;
min-height: 100%;
&:after {
content: "";
position: absolute;
background: png_base64( rgba(255, 66, 78, 0.25) );
width: 100%;
height: 100%;
top: 0;
left: 0;
z-index: -1;
}
}