IE读取从计算样式(currentStyle)继承的字体大小不正确

时间:2013-02-12 14:45:21

标签: javascript css internet-explorer internet-explorer-9

我在这里放了一个小测试案例:

http://jsfiddle.net/D4sLk/2/

基本上我设置了以下字体大小:

  • *(一切):12px
  • 容器:20px
  • 测试元素:inherit

DOM层次结构是:容器> 测试元素

在IE9中,使用testEl.currentStyle.fontSize将字体大小报告为12px,但显示为20px。在Chrome和FF中看起来很好。

这个问题有没有解决方法?或者我做过一些非常愚蠢的事情?

1 个答案:

答案 0 :(得分:2)

尝试使用font-size: 1em而不是inherit

之所以这样,是因为我发现inherit似乎在IE中存在问题。当我查看IE9时它变得很好,但由于某种原因,testEl.currentStyle.fontSize$(testEl).css('font-size')都返回了12px。

我已经读过在IE8中使用font-size:inherit,你需要指定一个!DOCTYPE,但它在IE9(http://www.w3schools.com/cssref/pr_font_font-size.asp)中应该没问题。出于某种原因,testEl.currentStyle.fontSize$(testEl).css('font-size')未在IE9中获取正确的值。

当您将font-size设置为1em时,您将其调整为父字体大小的100%,在这种情况下,结果为20px。来自http://www.w3schools.com/cssref/css_units.asp

  

1em等于当前的字体大小。 2em意味着当前字体大小的2倍。例如,如果元素显示为12 pt的字体,则'2em'为24 pt。 'em'是CSS中非常有用的单元,因为它可以自动适应阅读器使用的字体

因此,computedStyle.fontSize$(testEl).css('font-size')都应返回20px。

希望这有帮助!