ここに小さなテストケースをまとめました。
基本的に、次のフォントサイズを設定しています。
- * (すべての):
12px - 容器:
20px - テスト要素:
inherit
DOM階層は、コンテナー>テスト要素です。
IE9では、フォントサイズはを使用して12pxとして報告されtestEl.currentStyle.fontSizeますが、20pxとして表示されます。ChromeとFFでは問題ないようです。
この問題の回避策はありますか?それとも私は本当に愚かなことをしましたか?
ここに小さなテストケースをまとめました。
基本的に、次のフォントサイズを設定しています。
12px20pxinheritDOM階層は、コンテナー>テスト要素です。
IE9では、フォントサイズはを使用して12pxとして報告されtestEl.currentStyle.fontSizeますが、20pxとして表示されます。ChromeとFFでは問題ないようです。
この問題の回避策はありますか?それとも私は本当に愚かなことをしましたか?
font-size: 1emを使用する代わりにを使用してみてくださいinherit。
これはinherit、IEに問題があるように思われるためです。IE9を見ると問題なくレンダリングされましたが、何らかの理由testEl.currentStyle.fontSizeで$(testEl).css('font-size')両方とも12pxを返しました。
font-sizeを使用するには:IE8で継承するには、!DOCTYPEを指定する必要がありますが、IE9では問題ないはずです(http://www.w3schools.com/cssref/pr_font_font-size.asp) 。何らかの理由で、testEl.currentStyle.fontSizeIE9$(testEl).css('font-size')で正しい値を取得していません。
font-sizeを1emに設定すると、親のfont-sizeの100%までサイズが変更され、この場合は20pxになります。http://www.w3schools.com/cssref/css_units.aspから:
1emは現在のフォントサイズと同じです。2emは、現在のフォントの2倍のサイズを意味します。たとえば、要素が12 ptのフォントで表示されている場合、「2em」は24ptです。'em'は、リーダーが使用するフォントに自動的に適応できるため、CSSで非常に便利な単位です。
結果として、computedStyle.fontSizeと$(testEl).css('font-size')は両方とも20pxを返すはずです。
お役に立てれば!