Warum so umständlich?
HTML:
<div class="mittig"><p>Text</p></div>
CSS:
.mittig {display:table;}
.mittig p {display:table-cell; vertical-align:middle;}
>
> Ist zwar auch nicht optimal, aber immer noch besser, als den Code mit unnötigen Tabellen aufzublähen.
Im meinem Fall wird der HTML-Code komplexer, in Deinem der CSS-Code. Wenn's öfter vorkommen soll, würde ich Deine Methode vorziehen. Bei einmaligem Vorkommen eher meine.
mfg
T.