Ну, я не знаю, почему это происходит, но здесь есть некоторая странность. Это также влияет на Safari и немного отличается. Если вы добавите отрицательное поле к размеру кнопки, в Firefox он переместится на половину расстояния по сравнению с Safari. Таким образом, решение, кажется, компенсирует фоновое изображение. Вот один из способов взломать его:
/*grey button hacks non-IE*/
button.grey span{
background-position: 0 -1px;
}
button.grey:hover span{
background-position: 0 -36px;
}
button.grey:active span{
background-position: 0 -71px;
}
/* IE workaround. The \9 makes non-IE ignore these styles*/
button.grey span{
background-position: 0 0px\9;
}
button.grey:hover span{
background-position: 0 -35px\9;
}
button.grey:active span{
background-position: 0 -70px\9;
}
Пример здесь: http://jsbin.com/orami3/9