Это называется спрайтом:
Google тоже использует его, так как уменьшает размер обслуживаемого контента:
Чтобы заставить его работать должным образом, вы обрезаете фоновое изображение таким образом, чтобы отображалась только небольшая часть:
#foo
{
background-image: url('bar.png');
background-position: 0px 0px;
}
И на :hover
вы сдвигаете его немного:
#foo:hover
{
background-position: 70px 0px;
}