2014-08-31 77 views
0

有没有一种方法可以在同一元素内的背景图像上叠加背景色?这是我的CSS:分层背景图像下面的背景颜色?

#pitchImg.hero{ 
    background:url("imgs/pitch-img.jpg") rgba(92,74,95,1); 
    background-repeat:no-repeat; 
    background-position:center; 
} 

我试过切换url和rgba的地方,但无济于事。有没有办法做到这一点,而不是创建另一个div(如果存在这样的事情)?

+0

如果你有一个BG-色彩搭配上的图像的顶部* *的“1”,不透明度,图像将是不可见的,会吗? – Jeroen 2014-08-31 21:24:14

回答

3

您可以将样式伪:after元素和背景颜色将在背景图像应用。

#pitchImg.hero{ 
    background-image:url("imgs/pitch-img.jpg"); 
    background-repeat:no-repeat; 
    background-position:center; 
} 

#pitchImg.hero:after { 
    background-color: rgba(92,74,95,1); 
    content: "";   
    height: 100%; 
    display: block; 
} 

jsFiddle Demo

+1

啊是的!我忘了伪元素。非常感谢! – Majo0od 2014-08-31 21:41:52

0

独立出来: http://jsfiddle.net/a5vbuufb/1/

#test{ 
    background-image: url('https://www.google.com/images/srpr/logo11w.png'); 
    background-color: blue; 
    height: 400px; 
} 
+0

从我看到的情况来看,背景图片总是会随着颜色的变化而变化,不管您将它放在什么位置。 – Majo0od 2014-08-31 21:30:45

+2

@Majed:这里的属性顺序完全没有关系 - 它从来没有在CSS中做过。即使有多个背景,也不能在图像上添加颜色 - 颜色始终必须是最后一个值,因此是最低层,因为它是以这种方式指定的。 – CBroe 2014-08-31 21:39:25

+0

不适用于ie 11 – 2016-11-01 17:28:44