ma certo perchè <a> ha bisogno di avere delle dimensioni, essendo lui un tag inline.
Prova a mettere delle dimesnioni esatte a tutti gli elementi e vedi cosa succede.
Cmq non devi mettere dei div all'interno di <a>; metti dei span a cui dai display:block;