Come fai a vedere che non funziona?
Hai messo lo stato :active uguale allo stato :hover.

Prova a cambiare qualcosa nello stato :active, e vedrai che mentre premi il mouse lo stato cambia.
PS: in qualche versione di IE lo stato :active non esiste

PS: io non metterei un line-height cosi` basso: dovresti metterlo uguale a height, o non definirlo.