Absolutamente todo eso se puede lograr con CSS.
Código HTML:
Ver original<!doctype html>
<!--
.boton{
background:red;
}
.boton:hover{
background:blue;
}
.boton:active{
background:green;
}
-->
<a href="#" class="boton">Click ac
á</a>
No importa si usás imágenes o colores sólidos o lo que sea.
Con imágenes necesitás en realidad crear una imagen sola con todos los estados (normal, hover y active) y en cada estado la "movés" usando background-position. Acá hay una especie de tutorial, que no me gustó mucho pero tal vez te sirva:
http://www.tekoestudio.com/como-crea...n-css-sprites/
Ignorá la parte del diseño del botón, sólo te interesaría saber cómo hacer la técnica con CSS.