They can often cause performance issues on mobile devices. I am not 100% sure why (I never plunged into the problem), but I guess this is because the mobile web kit loads a new copy of the relatively large image into memory for each instance of it on the page. Since mobile devices often have very little RAM, this can slow down the page.
I came across this problem earlier when there were about 300 "icons" of sprites on the page, each of which I pulled from a sprite containing about 50 different icons. Returning to the βusualβ methods with a single icon per image (or 2-3 for hover states), performance problems on this particular page were resolved.
In addition, many browsers (mobile and others) often will not 100% relate to clipping sprites with a small change in the size of the page content (for example, using "Zoom In / Out" in the browser itself). You will often see small pieces of sprite next to the one you want to use.
As for your bullet example, you don't need more than one extra div / span. You should set margin-left to li and put your "bullet div" in the empty space that it creates.
Saying this, I use sprites all the time because they are convenient, just keep in mind a few problems with them. Typically, I have sprites.png , sprites_h.png and sprites_v.png for horizontal and vertically repeating fragments.
source share