如果您需要缩小图像的大小,而不是扩大它,这种方法是行不通的。我发现避免使用 Javascript 的最佳方法是将两个图像叠加在一起,悬停时使顶部的图像透明。所有其他涉及调整原件大小的方法(例如,background-size
)在 IE 中似乎都失败了。
CSS:
.social-btn-container {
width:46px;
height:46px;
position:relative;
float: left;
margin-right: 15px;
}
.social-btn-container:hover > .top-btn {
visibility:hidden;
}
.social-btn {
margin:0;
padding:0;
border:0;
width: 46px;
height: 46px;
position: absolute;
left:0;
top:0;
}
.top-btn {
z-index: 1;
}
.top-btn:hover {
opacity: 0;
}
HTML:
<div class="social-btn-container">
<a href="http://www.facebook.com/comunidadintiwarayassi" target="_blank" title="follow us on facebook">
<img src="images/icons/facebook_top.png" class="top-btn social-btn" />
<img src="images/icons/facebook_bottom.png" class="social-btn" />
</a>
</div>
该.social-btn-container:hover > .top-btn
部分使其在 IE 怪癖模式下工作,这似乎不支持opacity
,并且如果您使用:hover{visibility:hidden}
hover 会在可见性变为隐藏时变为 false,从而导致闪烁。(外部 div 也定位图像。)我已经在 FF23、IE 标准和怪癖(让 IE 10 模拟 7、8 和 9)、Opera 和 Safari 中对此进行了测试。