vorrei una soluzione solo CSS
se non vuoi usare javascript per il preload delle immagini, coi soli css (e html) puoi creare un div con un display:none che conterrà l'immagine e sarà il primo elemento dopo body. Non è granché come soluzione però...