有没有办法将下标和上标添加到同一个元素?如果我做
Sample Text<sub>Sub</sub><sup>Sup</sup>
上标出现在下标之后。我有一个想法是做一些像:
<table>
<tr>
<td rowspan='2' valign='center'>Sample Text</td>
<td>Sup</td>
</tr>
<tr>
<td>Sub</td>
</tr>
</table>
它似乎做了这项工作,但非常难看。还有更好的想法?
谢谢!
我不是CSS大师,但你可以尝试一些类似的东西 http://jsfiddle.net/TKxv8/1/
有许多硬编码值,并且可能只会在之后找到对周围其他元素的影响,但这是一个很好的起点。
Sample Text
<span class='supsub'>
<sup class='superscript'>Sup</sup>
<sub class='subscript'>Sub</sub>
</span>
.supsub {position: absolute}
.subscript {color: green; display:block; position:relative; left:2px; top: -5px}
.superscript {color: red; display:block; position:relative; left:2px; top: -5px}
这个类似于CyberDudes方法,另外它根据sub和sup的宽度缩进以下文本:
http://jsfiddle.net/jwFec/1/
Some text <span class="supsub"><sup>sup</sup><sub>sub</sub></span> followed by other text.<br />
<style>
.supsub {
display: inline-block;
}
.supsub sup,
.supsub sub {
position: relative;
display: block;
font-size: .5em;
line-height: 1.2;
}
.supsub sub {
top: .3em;
}
</style>
好吧,你可以指定位置 sup
关系到 Sample Text
是正确的边界。
http://jsfiddle.net/a754h/
这是一个干净的解决方案。创建两个CSS类:
.nobr {
white-space: nowrap;
}
.supsub {
display: inline-block;
margin: -9em 0;
vertical-align: -0.55em;
line-height: 1.35em;
font-size: 70%;
text-align: left;
}
您可能已经将“nobr”类作为<nobr>替换。现在来表达硫酸盐的分子式,使用“supsub”类如下:
<span class="nobr">SO<span class="supsub">2-<br />4</span></span>
也就是说,将你的上标/下标括在“supsub”类中,并在它们之间加上一个<br />。如果你喜欢你的上标/下标有点大或小,那么调整字体大小,然后修改vertical-align和line-height。边距设置中的-9em是为了防止上标/下标添加到包含它们的行的高度;任何大的价值都可以。