[英]Overlay transparent image on hover using CSS
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;
。
这仍然不适用于IE7 / 8 AFAIK,所以我担心这不会回答这个问题。
但是,当我忘记如何使用现代方法完成这项工作时,我已经在这个页面上结束了,所以我把答案放在这里供参考。
我只能通过将img
放在容器/包装器div中来实现这一点,因为img
元素不会接受psuedo-classes,如: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 */
}
请参阅此处的示例
通常我们重新创建应该具有.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>
这是我能理解你的问题的最接近的方式
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.