In most browsers, printing background colors and images is disabled. You need to enable that before you will be able to see the styles properly when printing.
In IE, do a print preview, then click the Page Setup button. You'll see a Print Background Colors and Images checkbox.
In FireFox, do a print preview, then click the Page Setup button. You'll see a Print Background (colors & images) checkbox.
In Chrome, you can't without the IETAB extension unfortunately. See this support thread.
And, to prove that background images applied in CSS do in fact print when the setting in the browser is turned on, take the following code and put it in a basic HTML page. Open it up in IE, FireFox, or other browsers that support the image printing setting. Then, toggle the setting on/off. You'll see the small arrow image appear/disappear in the print preview.
<style type="text/css">
.link {
background: url(http://www.famfamfam.com/lab/icons/silk/icons/control_play.png) no-repeat;
}
.link a {
padding-left: 18px;
}
</style>
<div class="link">
<a href="#">Test Link</a>
</div>