Они часто могут вызывать проблемы с производительностью на мобильных устройствах. Я не уверен на 100%, почему (никогда не углублялся в проблему), но я предполагаю, что это потому, что мобильный webkit загружает новую копию относительно большого изображения в память для каждого его экземпляра на странице. Поскольку мобильные устройства часто имеют очень мало ОЗУ, это может привести к быстрому замедлению страницы.
Раньше я сталкивался с этой проблемой, когда на странице было около 300 спрайтов значков, каждый из которых извлекал изображение спрайта, содержащее около 50 различных значков. Возвращаясь к "обычным" методам с одним значком на изображение (или 2-3 для состояний при наведении), удалось решить проблемы с производительностью на этой конкретной странице.
Кроме того, многие браузеры (мобильные и другие) часто не на 100% учитывают ограничение спрайтов, когда вы слегка изменяете размер содержимого страницы (например, используя «Увеличение / Уменьшение» в самом браузере). Вы часто будете видеть маленькие кусочки спрайта рядом с тем, который хотите использовать.
Что касается вашего примера пули, вам не нужно больше, чем один дополнительный div / span. Вы бы установили margin-left
на li
и поместили бы ваш "bullet div" в пустое пространство, которое он создает.
При этом я использую спрайты все время, потому что они удобны, просто имейте в виду несколько проблем с ними. Как правило, у меня есть sprites.png
, sprites_h.png
и sprites_v.png
для горизонтально и вертикально повторяющихся фигур.