Вы не можете переходить между двумя фоновыми изображениями, поскольку у браузера нет возможности узнать, что вы хотите интерполировать. Как вы обнаружили, вы можете изменить положение фона. Если вы хотите, чтобы изображение появлялось при наведении мыши, я думаю, что лучший способ сделать это с помощью переходов CSS - это поместить изображение в содержащий элемент, а затем анимировать цвет фона на прозрачный на самой ссылке:
span {
background: url(button.png) no-repeat 0 0;
}
a {
width: 32px;
height: 32px;
text-align: left;
background: rgb(255,255,255);
-webkit-transition: background 300ms ease-in 200ms; /* property duration timing-function delay */
-moz-transition: background 300ms ease-in 200ms;
-o-transition: background 300ms ease-in 200ms;
transition: background 300ms ease-in 200ms;
}
a:hover {
background: rgba(255,255,255,0);
}