... make a background image stretch and shrink without causing it to pixelate?The browser can shrink it for you. But you don't want the browser to enlarge it for you - the results will be visually ugly. Agree with HagayMandel - create different images for different sizes. You will get the best look and you'll save bandwidth and storage when you're working with smaller viewports.
For example, here is a wordpress theme: http://themes.themedizain.com/dizain-01/
If you decrease the size of your screen you will see the site respond but it will not respond if you make the screen bigger than normal.
What is the way to do this, pure CSS? How would I get the images to be larger?