最简单的方法是在img 上使用不透明度,如果需要,还可以使用带有您要添加的颜色的背景元素(请注意,不透明度有点browser and version dependent,此示例适用于 Firefox、Chrome,我假设其他 Webkit 浏览器):
img {
float: left;
}
#light {
opacity: .4;
float: left;
}
#dark {
background: black;
float: left;
}
#dark img {
opacity: .6;
display: inline;
}
<img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG"/>
<img id="light" src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG"/>
<div id="dark">
<img src="http://www.gravatar.com/avatar/e1122386990776c6c39a08e9f5fe5648?s=128&d=identicon&r=PG"/>
</div>
http://jsfiddle.net/Sctkz/1/
正如 David Thomas 指出的那样,如果您使用的是具有 alpha 透明度的,您可以将 background-color 添加到 img 本身:
http://jsfiddle.net/GfkeF/
根据Quirksmode,使用兼容性视图可以获得完整的IE支持:
opacity: .5; /* Firefox, Chrome[, Webkit?] */
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: alpha(opacity=50);
否则,正如 Ktash 和 MDN 所指出的,您可以简单地使用:
opacity: .5; /* Firefox, Chrome[, Webkit?] */
filter: alpha(opacity=50); /* In general, probably ok for IE */