Вы можете установить размер фонового изображения в CSS3, например, background-size: 32px 32px;
, но это не совсем совместимо с браузерами, и я думаю, это то, что вас беспокоит.
Если спрайт не является хорошо разнесенным и вертикальным, я бы рекомендовал использовать немного дополнительной разметки. Например, используйте разметку как
<li><span class="ico"></span>This is an li element.</li>
и стиль элемента span
с соответствующей высотой и фоновым изображением спрайта. Используя этот метод, ваши li
элементы могут иметь любую высоту, и будет отображаться только соответствующий значок, несмотря на то, насколько плотно упакован ваш спрайт.