How to shift a background image with css

Rather than manually shifting the image by 8px, you should just anchor the image to the padding box (green in the diagram below) instead of the border box (yellow). Doing this will place the top-left corner of the image inside of the border instead of behind it.

background-origin: padding-box;

This will make maintenance easier since it will still work even if you change the border width.

box model

You can also set the background's origin to the content box (blue):

background-origin: content-box;

Documentation / Simple Demo @ MDN


You can use the background-position:

background-position: 8px 8px;

More on that: https://developer.mozilla.org/en-US/docs/Web/CSS/background-position


you could also use some short hand.
background: <colour> <image url> <repeat> <left> <top> <scroll>

for yours i'd be thinking something like:
background : transparent url(<location to img>) no-repeat 8px 8px scroll;