Скорее всего, самый простой способ - использовать свойство background-size
css. Поскольку большинство современных браузеров (IE 9+, FF4 +, Safari4 +, Chrome3 +) поддерживают его, вы можете сделать следующее:
HTML:
<div id="mySprite">
</div>
CSS:
#mySprite{
height: 80px; /* 64px * 1.25 */
width: 80px; /* 64px * 1.25 */
background-image:url(my.png);
background-position: -0px -560px; /* pick specific one at -448px * 1.25 */
background-size:640px 640px; /* scale image to 512px * 1.25 */
}
Спрайт-лист имеет спрайты размером 64x64px и масштабирует их до 80x80px.
Смотрите живой пример здесь: http://jsfiddle.net/Zgr5w/1/
Как сказал @Prusse: вы также можете использовать transform: scale()
, но у него есть некоторые недостатки: поддержка браузера, дополнительное преобразование позиции, выравнивание с другими элементами может быть нарушено:
#mySprite{
height: 64px;
width: 64px;
background-image:url(my.png);
background-position: -0px -448px;
transform:scale(1.25);
/* additional to compensate the position shift */
position:relative;
top:10px;
left:10px;
}
см. Пример двух приведенных выше подходов здесь: http://jsfiddle.net/Zgr5w/1/