只有CSS的上标?

我只能在CSS中获得上标吗?

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

我目前有什么,看起来像这样:

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

但它不起作用。

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

你可以使用vertical-align: super (加上一个伴随的font-size缩小) vertical-align: super标。

但是,一定要阅读这里的其他答案 ,尤其是paulmurray和cletus的答案 ,以获得有用的信息。

老实说,我没有看到只在CSS做上标/下标的重点。 有没有方便的CSS属性,只是一堆自产的实现,包括:

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

或使用垂直alignment或我敢肯定其他方式。 事情是,它开始变得复杂:

  • 线上高度的CSS上标间距 ;
  • 注意为上标/下标的CSS为什么你可以说不应该使用CSS来devise上标/下标;

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

注意:值得一提的是这个常见的math上标和下标expression式的实体列表,尽pipe这个问题与这个问题没有关系。

sub / sup标签是HTML和XHTML。 我只是使用这些。

至于你的CSS的其余部分,在伪元素和内容属性之后并没有得到广泛的支持。 如果你真的不想把这个手动的HTML,我认为基于Javascript的解决scheme是你的下一个最好的select。 使用jQuery,这很简单:

 $(function() { $("a.external").append("<sup>+</sup>"); }; 

CSS文档包含所有HTML结构的行业标准CSS等价物。 也就是说:现在大多数Web浏览器都没有明确地处理SUBSUPBI等等 – 它们(有点儿)被转换成具有适当的CSS属性的SPAN元素,而渲染引擎只处理它。

该页面是附录D. HTML 4的默认样式表

你想要的位是:

 small, sub, sup { font-size: .83em } sub { vertical-align: sub } sup { vertical-align: super } 

我在页面上工作的目的是清晰易读的文字,上标元素不会改变行的上下边距 – 具有以下意见:

如果您的主文本的line-height: 1.5emline-height: 1.5em ,则应减小上标文本的行高以使其正确显示。 我用line-height: 0.5em

另外, vertical-align: super在大多数浏览器中都能正常工作,但在IE8中有一个上标元素时,该行的其余部分被压下。 所以相反,我使用了vertical-align: baseline和一个负面的topposition: relative来实现相同的效果,这在跨浏览器的情况下效果更好。

所以,要添加到“本土实施”中:

 .superscript { font-size: .83em; line-height: 0.5em; vertical-align: baseline; position: relative; top: -0.4em; } 

http://htmldog.com/articles/superscript/基本上:;

 position: relative; bottom: 0.5em; font-size: 0.8em; 

据我所知,在实践中运作良好。

以下内容来自Mozilla Firefox的内部html.css:

 sup { vertical-align: super; font-size: smaller; line-height: normal; } 

所以,在你的情况下,这将是一些东西,如:

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

这是另一个干净的解决scheme

 sub, sup {vertical-align: baseline; position: relative; font-size: 70%;} /* 70% size of its parent element font-size which is good. */ sub {bottom: -0.6em;} /* use em becasue they adapt to parent font-size */ sup {top: -0.6em;} /* use em becasue they adapt to parent font-size */ 

通过这种方式,你仍然可以使用sup / sub标签,但你固定他们的idious行为总是搞砸了段落线的高度

所以现在你可以这样做:

  <p>This is a line of text.</p> <p>This is a line of text, <sub>with sub text.</sub></p> <p>This is a line of text, <sup>with sup text.</sup></p> <p>This is a line of text.</p> 

而你的段落线高度不应该搞砸了。

testingIE7,IE8,FF3.6,SAFARI4,CHROME5,OPERA9

我使用p {line-height: 1.3;} (这是一个很好的线条高度,除非你希望你的线条贴得太近),它仍然有效,因为“-0.6em”线条高度的子/文本将适合,不要相互超越。

忘了一个可能相关的细节我总是在我的页面第一行使用DOCTYPE(特别是我使用HTML 4.01 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> )。 所以我不知道,当浏览器处于quirkmode(或不是标准模式)时,由于缺lessDOCTYPE或不能触发Standard / Almost Standard模式的DOCTYPE,这个解决scheme是否工作正常。

如果要更改字体大小,则可能需要使用此规则停止缩小大小:

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

我不确定这是否相关,但我已经解决了我的问题&sup2; HTML实体,因为我无法在<label>标签内添加任何其他html标签。 所以这个想法是使用ASCII代码而不是CSS或HTML标签。

CSS属性font-variant-position正在考虑之中,最终可能会成为这个问题的答案。 但到2017年初,只有Firefox支持它。

 .super { font-variant-position: super; } 

请参阅MDN 。

查看: http : //www.cssdesignpatterns.com/Chapter%2012%20-%20ALIGNING%20CONTENT/Vertical-aligned%20Content/example.html

如果看起来像你想“vertical-align:text-top”

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

这是sup使用的确切方法:

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

通过谷歌铬检查元素find这个。