Is there a way to preload images only with html / css?
Yes, you can. There are many textbooks in this topic - here is one of them .
Or even simpler: <link rel="prefetch" href="path to image"> (Firefox).
<link rel="prefetch" href="path to image">
<link rel="prerender" href="http://example.org/index.html"> (Chrome)
<link rel="prerender" href="http://example.org/index.html">
If you include the URL in CSS, the image will be loaded as the .css file is loaded into the document.
Yes: http://perishablepress.com/press/2008/04/15/pure-css-better-image-preloading-without-javascript/
Yes there is. There is a method called CSS sprites.
This basically works by loading one large image, and then only displaying specific sections of the image as needed. Obviously, this method is not suitable for any solution, but it is good for many.
A List Apart has an excellent tutorial on this subject: List aspect: Articles: CSS sprites: crop image kiss of death