问题
I wanted to put a border around a table which has a background image. The border works fine, but when I do this (it is an 8px border) the background image gets cut off by the border. Am I able to shift the background image to start 8px to the right and 8px down?
回答1:
You can use the background-position:
background-position: 8px 8px;
回答2:
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;
回答3:
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.
You can also set the background's origin to the content box (blue):
background-origin: content-box;
Documentation / Simple Demo @ MDN
来源:https://stackoverflow.com/questions/1175557/how-to-shift-a-background-image-with-css