2023-12-13 05:00:04

只在CSS上标?

我怎么能得到上标做,只有在CSS?

我有一个样式表,我用上标字符标记外部链接,但我很难让字符正确对齐。

我目前拥有的是这样的:

a.external:after {
  font-size: 50%;
  vertical-align: top;
  content: "+";
}

但这并不奏效。

当然,我会使用<sup>-标签,只有当内容允许HTML…


当前回答

.superscript {
  position: relative;
  top: 5px;
  font-size: 90%;
  vertical-align: super;
}

其他回答

如果你正在改变字体大小,你可能想用下面的规则停止缩小大小:

sup sub, sub sup, sup sup, sub sub{font-size:1em !important;}

相关或不相关,使用上标作为HTML元素或在文本中作为span+css可能会导致本地化程序中的本地化问题。

例如,我们说“第三方软件”:

3<sup>rd</sup> party software
3<span class="superscript">rd</span> party software

译者如何翻译“rd”?他们可以为一些西里尔语言留空,但其他外来语言或RTL语言呢?

在这种情况下,最好避免使用上标,并使用完整的措辞,如“第三方软件”。 或者,正如这里在其他评论中提到的,通过jQuery在上标中添加加号。

老实说,我不认为在CSS中只做上标/下标有什么意义。它没有方便的CSS属性,只有一堆本地实现,包括:

.superscript { position: relative; top: -0.5em; font-size: 80%; }

或者使用垂直对齐或者其他方式。问题是,事情开始变得复杂了:

CSS上标行高间距; 注意CSS的上标/下标为什么你可以说不应该样式上标/下标的CSS;

第二点值得强调。通常,上标/下标实际上不是样式问题,而是表示意义。

旁注:尽管这个问题与数学上标和下标表达式无关,但值得一提的是这个常见数学上标和下标表达式的实体列表。

sub/sup标记在HTML和XHTML中。我会用这些。

至于CSS的其他部分,伪元素和内容属性的:after并没有得到广泛支持。如果你真的不想把这个手动放在HTML中,我认为基于javascript的解决方案是你的下一个最佳选择。使用jQuery,这是简单的:

$(function() {
  $("a.external").append("<sup>+</sup>");
};
.superscript {
  position: relative;
  top: 5px;
  font-size: 90%;
  vertical-align: super;
}

sup的用法如下:

.superscript{
    vertical-align:super;
    font-size:smaller;
}

发现这通过谷歌铬检查元素。