答案 0 :(得分:12)
我检查了您的链接,并基于此提出了this solution。
HTML:
<div class="image">
<img src="xy.jpg" alt="" />
<img class="hoverimage" src="xy_hover.jpg" alt="" />
</div>
CSS:
.image { position: relative; width: 184px; height: 219px; }
.hoverimage { position: absolute; top: 0; left: 0; display: none; }
.image:hover .hoverimage { display: block; }
应该适用于所有浏览器,包括IE8和IE7。它在IE6中不起作用,因为它只允许:将鼠标悬停在链接(<a>
)等特定元素上。如果您想支持IE6,请将.image
更改为<a>
而不是<div>
,并将其display: block;
。
答案 1 :(得分:1)
这仍不适用于IE7 / 8 AFAIK,所以我担心这不会回答这个问题。
然而,当我忘记如何使用现代方法进行这项工作时,我已经在这个页面上结束了,所以我把答案放在这里供参考。
我只能通过将img
放在容器/包装器div中来实现这一点,因为img
元素不会接受像:after
这样的伪类。
<div class="container"><img src="http://placekitten.com/240/320" alt="icanhaz"></div>
然后CSS被设置为在悬停时提供伪元素。
.container {
position: relative;
}
.container:hover:after {
content: '';
position: absolute;
left: 0;
top: 0;
right: 0;
bottom: 0;
background: rgba(0,0,0,0.5); /* Here you may also use images, gradients, etc */
}
请参阅示例here
答案 2 :(得分:-1)
通常我们重新创建应该具有.png格式的透明叠加层的图像。 .Jpeg是一种不支持透明度的平面图像格式。
我们采取的下一步是做这样的事情:
<div style="Background-Image:Url(BackgroundImage.Jpg);Width:500px;Height:500px" >
<div style="Background-Image:Url(OverlayImage.Png);Width:50%;Height:50%" >
...
</div>
</div>
这是我能理解你的问题的最接近的方式