If you're fine with having padding in the div, you can utilize the background-clip: content-box
property. By adding padding to the div that matches the desired spacing, the background image won't show up in the padding area.
Check out the example below:
.sprite {
background-image: url('https://www.vg-resource.com/attachment.php?aid=7093');
background-repeat: no-repeat;
background-position: -12px -140px;
background-clip: content-box;
padding: 20px;
width: 32px;
height: 40px;
border: 1px solid black;
}
<div class="sprite"></div>
Keep in mind that you must adjust the sprite position calculations to accommodate the padding. In this example, even though the sprite is located at (32, 160), you need to subtract (20, 20) for the padding.