在 HTML 中垂直居中下标和上标

Vertically Center Sub and Super Script in HTML

有没有办法让子脚本和上脚本同时垂直居中?我希望 "e" 与 "r".

垂直居中
<span><sup>e</sup><sub>r</sub>Team 1</span>

嗯,有,但您几乎必须去除这些标签固有的所有默认样式。所以你不妨使用跨度。

你还需要一个包装器,这样你就可以按照你想要的方式排列它们...我用过 flexbox,但我相信还有其他方法。

body {
  font-size: 36px;
  text-align: center;
}
span.column {
  flex-direction: column;
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  vertical-align: text-top;
}
sup,
sub {
  top: 0;
  bottom: 0;
  line-height: 1;
  font-size: .5em;
}
<span>
  <span class="column"><sup>e</sup><sub>r</sub></span>
Team 1
</span>

如果您不介意 [sub][super] 脚本使用等宽字体,您可以执行以下操作:

span {
  font: 20px verdana;
}

sup, sub {
  font-family: monospace;       /* make letters same width so the transform aligns them properly */
}

sup + sub {
  display: inline-block;        /* transform doesn't work on inline elements */
  transform: translateX(-100%); /* move backwards */
}
<span><sup>e</sup><sub>r</sub>Team 1</span>

再多一个解决办法。 注意只有当你的下标或上标中有 1 个字母时,这才有效。

span {
  font-size: 30px;
  position: relative;
  padding-left: 0.5em
}
sup,
sub {
  position: absolute;
  left: 0;
  line-height: 0.8;
  font-size: .6em;
}
sup {
  top: 0;
}
sub {
  bottom: 0;
}
<span><sup>e</sup><sub>r</sub>Team 1</span>