Это из соображений производительности? Если так, то почему?
Один запрос означает меньшее количество одновременных подключений к серверу, что означает, что другие вещи могут загружаться. TCP-соединение также стоит ресурсов на сервере. Меньшее общее количество подключений на пользователя означает, что больше пользователей могут использовать его одновременно (если ваша производительность действительно ограничена подключением).
Один спрайт обычно имеет немного меньший размер файла, чем набор отдельных изображений, хотя это не гарантируется, и различные форматы различаются.
Все состояния объекта загружаются одновременно, что означает, что взаимодействие происходит намного быстрее, чем если бы вы загружали другое состояние по требованию.
Даже если часть спрайта не используется на текущей странице, его загрузка (и кеширование в браузере), это ускорит процесс просмотра для пользователя позже, когда пользователь просматривает другие страницы .
Спрайты не исправляют все, и вам, вероятно, не стоит слишком анально об этом говорить, пока вы не прогнозируете интенсивный трафик и / или не переходите в CDN, где вы платите за запрос.
Конечно, если у вас есть целый набор иконок 16x16, которые используются в одном месте, вы можете быстро их спрайтовать. Я обнаружил, что наличие нескольких спрайтов для таких вещей делает CSS намного чище.