Это легко сделать с помощью свойства background-size CSS3.
Создайте новый класс CSS, который также использует то же (большее) спрайтовое изображение, но с уменьшенным размером фона.Например, если ваш оригинальный спрайт 640px на 320px, вы можете сделать это в CSS:
.bg_image_new
{
background-image:url('/your/image.jpg');
background-size:320px 160px;
background-position:-422px -46px;
width:32px;
height:32px;
}
Примечание. Поскольку вы эффективно уменьшаете фоновый спрайт до нового размера, положение фона изменится.Затем вам нужно будет пересчитать новые позиции.В вашем случае вы делаете сокращение на 33,33% (48px-> 32px), и поэтому позиции также будут на -33,33% меньше.
Наконец, в html просто выполните:
<li class="bg_image_new"></li>
Это должно сработать, по крайней мере, для современных браузеров.