我在这里放了一个小测试案例:
基本上我设置了以下字体大小:
12px
20px
inherit
DOM层次结构是:容器> 测试元素。
在IE9中,使用testEl.currentStyle.fontSize
将字体大小报告为12px,但显示为20px。在Chrome和FF中看起来很好。
这个问题有没有解决方法?或者我做过一些非常愚蠢的事情?
答案 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。
希望这有帮助!