Es sieht so aus:
<a> --> css-Block-Definition
<span></span> --> inline
<p></p> --> inline
<em></em> --> inline
</a>
Das ist einfach ungültiges HTML. Ein Element wird nicht zu einem Blockelement weil du ihm sagst, dass es dargestellt werden soll wie eins.
Struppi.