Если вам нужно уменьшить размер изображения, а не увеличить его, этот подход не работает.Лучший подход, который я нашел, избегая 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>
The .social-btn-container:hover > .top-btn
part заставляет это работать в режиме IE quirks, который, кажется, не поддерживает opacity
, и если вы используете :hover{visibility:hidden}
, hover становится ложным, когда видимость становится скрытой, вызывая мерцание.(Внешний div также размещает изображения.) Я проверил это в FF23, стандартах IE и причудах (заставляя IE 10 эмулировать 7, 8 и 9), Opera и Safari.