4

ここに小さなテストケースをまとめました。

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

基本的に、次のフォントサイズを設定しています。

  • * (すべての):12px
  • 容器:20px
  • テスト要素:inherit

DOM階層は、コンテナー>テスト要素です。

IE9では、フォントサイズはを使用して12pxとして報告されtestEl.currentStyle.fontSizeますが、20pxとして表示されます。ChromeとFFでは問題ないようです。

この問題の回避策はありますか?それとも私は本当に愚かなことをしましたか?

4

1 に答える 1

2

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を返すはずです。

お役に立てれば!

于 2013-02-14T19:18:50.780 に答える