Znalazłem rozwiązanie, które zadziałało dla mnie ...
Jeśli masz element listy (lub element div) zawierający tylko link i powiedzmy, że dotyczy to linków społecznościowych na Twojej stronie do Facebooka, Twittera itp. i używasz obrazka sprite'a, możesz to zrobić:
<li id="facebook"><a href="facebook.com"></a></li>
Ustaw tło „li” jako obraz przycisku
#facebook {
width:30px;
height:30px;
background:url(images/social) no-repeat 0px 0px;
}
Następnie ustaw obraz tła linku jako stan po najechaniu na przycisk. Dodaj również atrybut krycia do tego i ustaw go na 0.
#facebook a {
display:inline-block;
background:url(images/social) no-repeat 0px -30px;
opacity:0;
}
Teraz wszystko, czego potrzebujesz, to „krycie” pod „a: hover” i ustaw na 1.
#facebook a:hover {
opacity:1;
}
Dodaj atrybuty przejścia krycia dla każdej przeglądarki do „a” i „a: hover”, aby ostateczny plik CSS wyglądał mniej więcej tak:
#facebook {
width:30px;
height:30px;
background:url(images/social) no-repeat 0px 0px;
}
#facebook a {
display:inline-block;
background:url(images/social) no-repeat 0px -30px;
opacity:0;
-webkit-transition: opacity 200ms linear;
-moz-transition: opacity 200ms linear;
-o-transition: opacity 200ms linear;
-ms-transition: opacity 200ms linear;
transition: opacity 200ms linear;
}
#facebook a:hover {
opacity:1;
-webkit-transition: opacity 200ms linear;
-moz-transition: opacity 200ms linear;
-o-transition: opacity 200ms linear;
-ms-transition: opacity 200ms linear;
transition: opacity 200ms linear;
}
Jeśli poprawnie wyjaśniłem, że powinno to pozwolić na zanikający przycisk obrazu tła, mam nadzieję, że przynajmniej pomoże!
background-image
nie jest animowaną właściwością ( w3.org/TR/css3-transitions/#animatable-properties ), więc Twoje rozwiązanie nie jest zgodne ze standardami.