HTML 上下标问题
HTML Superscript & Subscript Issue
给定文本添加上标和下标没有按预期工作。然而,它完全按照文本之前的预期工作。
化学元素在原子符号前后使用上标和下标来指定质量数、原子序数、电荷和原子数。附图中给出了准确的描述。我使用的代码如下。
<!DOCTYPE html>
<html>
<style>
.right-align {
display: inline-block;
margin-bottom: -0.3em;
vertical-align: -0.4em;
line-height: 1.0em;
font-size: 80%;
text-align: right;
}
.left-align {
display: inline-block;
margin-bottom: -0.3em;
vertical-align: 0.8em;
line-height: 1.0em;
font-size: 80%;
text-align: left;
}
.super-sub {
font-size: inherit;
line-height: inherit;
vertical-align: baseline;
}
</style>
<body>
<span style="white-space: wrap !important;">
<span class="right-align">
<sup class="super-sub">238</sup>
<br/>
<sub class="super-sub">92</sub>
</span>U<span class="left-align">
<sup class="super-sub">3-</sup>
<br/>
<sub class="super-sub">1</sub>
</span>
</span>
</body>
</html>
没有错误消息。第一张图片显示了结果必须如何格式化。第二张图片实际格式如何(数字 1 推 3-)。
您可以将字母 U 换到另一个 span 中,然后调整左对齐的 vertical-align。我增加了 font-size 以获得更好的可读性,并且还更改了左右对齐 类.
<!DOCTYPE html>
<html>
<html>
<style>
.left-align {
display: inline-block;
margin-bottom: -0.3em;
vertical-align: -0.4em;
line-height: 1.0em;
font-size: 150%;
text-align: right;
}
.right-align {
display: inline-block;
margin-bottom: -0.3em;
vertical-align: -0.4em;
line-height: 1.0em;
font-size: 150%;
text-align: left;
}
.center-align {
font-size: 150%;
margin: 0.2em;
}
.super-sub {
font-size: inherit;
line-height: inherit;
vertical-align: baseline;
}
</style>
</html>
<body>
<span style="white-space: wrap !important;">
<span class="left-align">
<sup class="super-sub">238</sup><br/>
<sub class="super-sub">92</sub>
</span><span class="center-align">U</span><span class="right-align">
<sup class="super-sub">3-</sup><br/>
<sub class="super-sub">1</sub>
</span>
</span>
</html>
您可能希望使用 flex
来简化事情:
body {
font-size: 48px
}
.element {
display: inline-flex;
flex-flow: column wrap;
justify-content: center;
align-items: flex-end;
height: 1.5em;
line-height: 1.3
}
.element > * {
font-variant: normal;
font-size: .75em;
line-height: 1;
}
.element>*:nth-child(3),
.element>*:nth-child(4) {
align-self: flex-start
}
<span class="element">
<sup>238</sup>
<sub>92</sub>
U
<sup>3-</sup>
<sub>1</sub>
</span>
给定文本添加上标和下标没有按预期工作。然而,它完全按照文本之前的预期工作。
化学元素在原子符号前后使用上标和下标来指定质量数、原子序数、电荷和原子数。附图中给出了准确的描述。我使用的代码如下。
<!DOCTYPE html>
<html>
<style>
.right-align {
display: inline-block;
margin-bottom: -0.3em;
vertical-align: -0.4em;
line-height: 1.0em;
font-size: 80%;
text-align: right;
}
.left-align {
display: inline-block;
margin-bottom: -0.3em;
vertical-align: 0.8em;
line-height: 1.0em;
font-size: 80%;
text-align: left;
}
.super-sub {
font-size: inherit;
line-height: inherit;
vertical-align: baseline;
}
</style>
<body>
<span style="white-space: wrap !important;">
<span class="right-align">
<sup class="super-sub">238</sup>
<br/>
<sub class="super-sub">92</sub>
</span>U<span class="left-align">
<sup class="super-sub">3-</sup>
<br/>
<sub class="super-sub">1</sub>
</span>
</span>
</body>
</html>
没有错误消息。第一张图片显示了结果必须如何格式化。第二张图片实际格式如何(数字 1 推 3-)。
您可以将字母 U 换到另一个 span 中,然后调整左对齐的 vertical-align。我增加了 font-size 以获得更好的可读性,并且还更改了左右对齐 类.
<!DOCTYPE html>
<html>
<html>
<style>
.left-align {
display: inline-block;
margin-bottom: -0.3em;
vertical-align: -0.4em;
line-height: 1.0em;
font-size: 150%;
text-align: right;
}
.right-align {
display: inline-block;
margin-bottom: -0.3em;
vertical-align: -0.4em;
line-height: 1.0em;
font-size: 150%;
text-align: left;
}
.center-align {
font-size: 150%;
margin: 0.2em;
}
.super-sub {
font-size: inherit;
line-height: inherit;
vertical-align: baseline;
}
</style>
</html>
<body>
<span style="white-space: wrap !important;">
<span class="left-align">
<sup class="super-sub">238</sup><br/>
<sub class="super-sub">92</sub>
</span><span class="center-align">U</span><span class="right-align">
<sup class="super-sub">3-</sup><br/>
<sub class="super-sub">1</sub>
</span>
</span>
</html>
您可能希望使用 flex
来简化事情:
body {
font-size: 48px
}
.element {
display: inline-flex;
flex-flow: column wrap;
justify-content: center;
align-items: flex-end;
height: 1.5em;
line-height: 1.3
}
.element > * {
font-variant: normal;
font-size: .75em;
line-height: 1;
}
.element>*:nth-child(3),
.element>*:nth-child(4) {
align-self: flex-start
}
<span class="element">
<sup>238</sup>
<sub>92</sub>
U
<sup>3-</sup>
<sub>1</sub>
</span>