即vertical-align:super / sub不正确

时间:2011-12-22 12:08:09

标签: css vertical-alignment

我想为span元素应用super / sub vertical alignment css属性。执行此操作后,跨度内的单词将呈现在正确的位置。但是,包含这些单词的跨度看起来像是放在IE下的错误位置(基线位置)。除了IE之外,它在其他浏览器下工作正常。

更有趣的是我发现如果我将一个属性contenteditable =“true”赋给span元素,它的位置就变得正确(...)。

你们可以在这里查看(属性contenteditable =“true”顶部位置为0且whithout属性contenteditable =“true”顶部位置为7): http://jsfiddle.net/E5Af9/

您可以尝试在第一个蓝色范围内删除contenteditable =“true”以查看发生的情况。它的行为就像我上面所说的那样。

我希望有更安全的选项,在span元素上添加一个不确定的属性。 有没有人有这个想法?或者是否有人可以告诉我在跨度中使用contenteditable是否会产生副作用。

1 个答案:

答案 0 :(得分:1)

即使在IE 7模式下,我也无法在IE 9上看到问题。我不确定什么被认为是一个问题,因为描述似乎说跨度内的单词是正确呈现但是跨度不是 - 而且我看不出那可能意味着什么。

无论如何,vertical-align在浏览器中有一些怪癖,即使按规格,也可能影响行高,这通常是不受欢迎的。因此,使用相对定位通常更好。例如,而不是

vertical-align: 1ex;

你可以设置

position: relative; bottom: 1ex;

他们的关键字值supersub具有与实现相关的含义,除了浏览器之外,它们通常在排版上也不合适。垂直放置通常应取决于周围的字符和字体,因此最好自己设计,通常使用em单元或ex单元,而只是告诉浏览器应用他们的想法上标或下标。