ここに小さなテストケースをまとめました。
基本的に、次のフォントサイズを設定しています。
- * (すべての):
12px
- 容器:
20px
- テスト要素:
inherit
DOM階層は、コンテナー>テスト要素です。
IE9では、フォントサイズはを使用して12pxとして報告されtestEl.currentStyle.fontSize
ますが、20pxとして表示されます。ChromeとFFでは問題ないようです。
この問題の回避策はありますか?それとも私は本当に愚かなことをしましたか?
ここに小さなテストケースをまとめました。
基本的に、次のフォントサイズを設定しています。
12px
20px
inherit
DOM階層は、コンテナー>テスト要素です。
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.fontSize
IE9$(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を返すはずです。
お役に立てれば!