Ehrlich gesagt sehe ich keinen Sinn darin, hoch- und tiefgestellte Zeichen nur in CSS zu verwenden. Es gibt kein praktisches CSS-Attribut für sie, nur eine Reihe von hausgemachten Implementierungen einschließlich:
.superscript { position: relative; top: -0.5em; font-size: 80%; }
oder mit vertical-align oder sicher auch auf andere Weise. Die Sache ist, dass es anfängt, kompliziert zu werden:
Der zweite Punkt ist hervorzuheben. In der Regel ist die Hochstellung/Tiefstellung nicht wirklich eine Frage der Gestaltung, sondern ein Hinweis auf die Bedeutung.
Nebenbei bemerkt: Es ist erwähnenswert, dass Liste der Einheiten für allgemeine hoch- und tiefgestellte mathematische Ausdrücke auch wenn sich diese Frage nicht darauf bezieht.
Die sub/sup-Tags sind in HTML und XHTML enthalten. Ich würde nur diese verwenden.
Was den Rest Ihres CSS betrifft, so werden die Attribute :after pseudo-element und content nicht allgemein unterstützt. Wenn Sie dies wirklich nicht manuell in den HTML-Code einfügen möchten, ist eine Javascript-basierte Lösung die nächstbeste Wahl. Mit jQuery ist dies so einfach wie:
$(function() {
$("a.external").append("<sup>+</sup>");
};