我想使用 CSS 将图像与纯色混合。如何才能做到这一点?
这是我到目前为止所得到的:
header {
width: 900px;
height: 60px;
background-image: url(../images/banner.jpg);
background-color: rgba(51,102,153,0.5);
}
但它不工作!
我只是无法理解这一点。
谢谢你的帮助!
当前接受的答案,它确实可以替代工作。但两者都将背景图像用于实际内容。此方法使用 img 标签。
HTML
<div class="blend">
<img src="http://sp9.fotolog.com/photo/41/8/54/butterlyinthebox/1243705008574_f.jpg" alt=" " />
</div>
CSS
.blend {
background: red;
display: inline-block;
}
.blend img {
opacity: 0.5;
}
见这个小提琴。
使用两个 div,看这个小提琴:
HTML:
<div id="wrapper">
<div id="content"></div>
</div>
CSS:
#wrapper
{
background: url("http://sp9.fotolog.com/photo/41/8/54/butterlyinthebox/1243705008574_f.jpg") no-repeat;
}
#content
{
background-color: yellow;
opacity: 0.5;
width: 477px;
height: 318px;
}
当前接受的答案有效,但它在语义上不正确,并且会从一些优化中受益。
您可以为此使用伪 after 元素,因此您无需为此引入额外的标记。所以标记仍然是这样的:
<div id="content"></div>
CSS 很冗长,但更具表现力。我不喜欢“包装器”包含实际内容(图像),而“内容”只是一种简单的颜色。也没有必要淡化整个 div,但您可以使用 alpha 通道的颜色。
#content {
position: relative;
background: url("http://sp9.fotolog.com/photo/41/8/54/butterlyinthebox/1243705008574_f.jpg") no-repeat;
width: 477px;
height: 318px;
}
#content:after {
content: '';
position: absolute;
width: 100%;
height: 100%;
background-color: rgba(255,0,0,0.5);
pointer-events: none;
}