Dies ist eine weitere saubere Lösung:
sub, sup {vertical-align: baseline; position: relative; font-size: 70%;} /* 70% size of its parent element font-size which is good. */
sub {bottom: -0.6em;} /* use em becasue they adapt to parent font-size */
sup {top: -0.6em;} /* use em becasue they adapt to parent font-size */
Auf diese Weise können Sie weiterhin Sup / Sub- Tags verwenden, aber Sie haben ihr idiöses Verhalten korrigiert, um die Höhe der Absatzzeilen immer zu erhöhen .
Jetzt können Sie also Folgendes tun:
<p>This is a line of text.</p>
<p>This is a line of text, <sub>with sub text.</sub></p>
<p>This is a line of text, <sup>with sup text.</sup></p>
<p>This is a line of text.</p>
Und Ihre Absatzzeilenhöhe sollte nicht durcheinander geraten.
Getestet auf IE7, IE8, FF3.6, SAFARI4, CHROME5, OPERA9
Ich habe mit a getestet p {line-height: 1.3;}
(das ist eine gute Zeilenhöhe, es sei denn, Sie möchten, dass Ihre Linien zu eng bleiben) und es funktioniert immer noch, da "-0.6em" eine so kleine Menge ist, dass auch bei dieser Zeilenhöhe der Unter- / Untertext passt und nicht über einander gehen.
Ich habe ein Detail vergessen, das relevant sein könnte. Ich verwende immer DOCTYPE in der ersten Zeile meiner Seite (insbesondere verwende ich HTML 4.01 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
). Daher weiß ich nicht, ob diese Lösung gut funktioniert, wenn sich der Browser aufgrund eines Mangels an DOCTYPE oder eines DOCTYPE, der den Standard- / Fast-Standard-Modus nicht auslöst, im Quirk-Modus (oder nicht im Standardmodus) befindet.