画像のサイズを拡大するのではなく、縮小する必要がある場合、このアプローチは機能しません。Javascriptを回避するために私が見つけた最良の方法は、2つの画像を重ね合わせ、ホバーすると上の画像を透明にすることです。オリジナルのサイズ変更を含む他のすべてのアプローチ (例: 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 quirks モードで動作しますが、これは をサポートしていないようです。ホバーopacity
を使用する:hover{visibility:hidden}
と、表示が非表示になると false になり、ちらつきが発生します。(外側の div も画像を配置します。) これを FF23、IE 標準および癖 (IE 10 で 7、8、および 9 をエミュレートする)、Opera、および Safari でテストしました。