Du musst den Wert den du bei padding-top einsetzt von der Höhe abziehen.
Was soll das bringen? Wenn padding + zeilehöhe höher ist als die Höhe des Elements verschwindets in einem standardkonformen Browser halt unten raus.
Dem IE eine Extrawurst braten ist sicher schlauer.