Quizá era porque ni se hace con HTML ni con CSS: se hace con Javascript o PHP.
 
A mí también me pasaba eso, no te preocupes 

. 
Bueno, al grano, lo más fácil es hacerlo con Javascript, así:
Pon esto entre <head> y </head>: 
 Código HTML:
 <script type="text/javascript">
function cambiarfondo(){
document.body.style.background = 'url(fondo2.jpg)'
}
</script>  Cambia fondo2.jpg por el fondo que quieras. 
Y esto en el body: 
 Código HTML:
 <a href="#" onclick="cambiarfondo()">fa</a>