Below is the default formatting for the sup
element:
sup {
font-size: smaller;
vertical-align: super;
}
.sup {
font-size: smaller;
vertical-align: super;
}
<p>E = mc<sup>2</sup> - or does it?</p>
<p>E = mc<span class="sup">2</span> - or does it?</p>
And this is how the sub
tag is styled by default:
sup {
font-size: smaller;
vertical-align: sub;
}
.sub {
font-size: smaller;
vertical-align: sub;
}
<p>E = mc<sub>2</sub> - or does it?</p>
<p>E = mc<span class="sub">2</span> - or does it?</p>
This means we have the flexibility to customize alignment as needed:
.a {
font-size: smaller;
vertical-align: sub;
}
.b {
font-size: smaller;
vertical-align: text-bottom;
}
.c {
font-size: smaller;
vertical-align: middle;
}
.d {
font-size: smaller;
vertical-align: text-top;
}
.e {
font-size: smaller;
vertical-align: super;
}
<p>Yay!
<span class="a">u</span>
<span class="b">n</span>
<span class="c">i</span>
<span class="d">c</span>
<span class="e">o</span>
<span class="d">r</span>
<span class="e">n</span>
<span class="c">s</span>
</p>
If numerical values are preferred for alignment, those can be used too:
.a {
font-size: smaller;
vertical-align: 0px;
}
.b {
font-size: smaller;
vertical-align: -2px;
}
.c {
font-size: smaller;
vertical-align: -4px;
}
.d {
font-size: smaller;
vertical-align: -2px;
}
.e {
font-size: smaller;
vertical-align: 0px;
}
.f {
font-size: smaller;
vertical-align: 2px;
}
.g {
font-size: smaller;
vertical-align: 4px;
}
.h {
font-size: smaller;
vertical-align: 2px;
}
.i {
font-size: smaller;
vertical-align: 0px;
}
<p>Yay!
<span class="a">r</span>
<span class="b">a</span>
<span class="c">i</span>
<span class="d">n</span>
<span class="e">b</span>
<span class="f">o</span>
<span class="g">w</span>
<span class="h">s</span>
<span class="i">a</span>
<span class="h">n</span>
<span class="g">d</span>
<span class="f">u</span>
<span class="e">n</span>
<span class="d">i</span>
<span class="c">c</span>
<span class="b">o</span>
<span class="a">r</span>
<span class="b">n</span>
<span class="c">s</span>
</p>