2009-12-11 74 views
2

可能重复:
relative font-size of <sub> or <sup> and their descendants in IEIE忽略HTML SUB元素的字体大小?

我通常很精通CSS但这个问题让我吃惊......

我有一些简单的标记,包括一些文字的和子文本:

<p>I am a main text<sub>This is a sub text</sub></p> 

我有se t CSS,因此默认情况下,所有元素的字体大小均为12px。然而,对于子元素我推翻这样的:

sub { color:#999; font-size:11px; } 

火狐尊重11像素,IE 8不,这使得它小得多,但它确实尊重颜色过规则。这是设置FIXED字体大小时我期望的最后一件事。我可以保证没有其他CSS规则与此冲突。

如果我将CSS中的字体大小增加到12px,IE会将其渲染为11px,但在Firefox中它太大了。一些奇怪的事情发生在IE中的SUB元素上。

我确实有一个解决方案,如果我使用别的方法标记子文本,例如h3,Firefox和IE都会正确显示字体大小。如果没有更好的解决方案,我会朝着这个方向努力,但我只是好奇,是否有更好的解决方案?我也喜欢标记目前的样子。

+0

你*知道,你是不是'sub'真的意味着*下标*? – pavium 2009-12-11 12:28:16

+0

是的。你的观点是? – Ferdy 2009-12-11 12:29:28

+0

也许IE对象的字体大小几乎与正文文本相同。 (IE做了一些奇怪的事情) – pavium 2009-12-11 12:36:10

回答

0

由于看起来没有CSS修复,我已经决定使用<small>标记而不是<sub>标记。这工作正常,但它确实使我的标记不太清楚。

0

我总是围绕IE的非标准合规工作的方式是检查用户代理,并根据它是IE还是其他方式返回不同的样式表。然后你的IE样式表可以做任何需要的东西,以使IE正确渲染,而不会为其他人打破。

+0

到目前为止,我能够避免为不同的浏览器提供不同的样式表,并且如果可能的话我想保持这种状态。 – Ferdy 2009-12-11 12:30:11

+0

在大多数情况下,IE特定的CSS可以通过使用“* html sub”来制作。 “* html”部分仅针对IE,因为它认为在html之外有一个父dom元素,可以是'document'或'window'元素。不知道哪个。 – 2009-12-12 19:30:40

+0

'* html sub' hack只适用于IE <= 6。可靠,有效和非脚本解决方案确实是有条件的评论。 [更多这里](http://www.webdevout.net/css-hacks#in_css-selectors)。 – Adam 2011-07-24 17:20:13