3

だから私はelem.style.widthを読んでいて、「3.1415926ex」のようなものを取得しています。

これを「px」に変換したいと思います。

JavaScriptにはこれを行うための関数が組み込まれていますか?文字列の最後の2文字を切り取り、それを数値として読み取り、それに魔法の定数を掛けることをお勧めします。

ありがとう!

4

2 に答える 2

5

exからへの直接的な変換がないため、「魔法の定数」はありませんpx(たとえば、インチからセンチメートルへの変換とは異なります)。

単位は、現在のフォントの小文字の「x」文字のex高さです(「フォント」は、書体ファミリ(Times New Romanなど)、サイズ(14pxまたは72ptなど)、およびスタイル(通常、太字)の組み合わせです。 、イタリック))。

...したがって、72ptImpactBoldの「1ex」は8ptHelveticaRegularの「1ex」よりも大きくなります。

これらの詳細を知っていれば、からexへの変換を行うことができます。pxもちろん、常にピクセル単位の「計算されたスタイル」が本当に必要なようです。これを読んでください:計算されたスタイルを取得するにはどうすればよいですか?

于 2012-09-18T05:44:57.547 に答える
4

この目的のための組み込み関数はありません。変数 を使用して JavaScript でアクセス可能な要素を指定するとelem、式 を使用して、整数に丸められたピクセル単位の幅を取得できますelem.clientWidth。ブラウザーによって精度が異なり、丸められていないものとして取得するには、原則としてelem.getBoundingClientRect().width代わりに使用できますが、実際には、多くのブラウザーで丸められた結果または不正確な結果が得られます。– これは、要素の水平パディングがゼロの場合に適用されます。

たとえば、要素の幅を設定してから上記を適用すると、ピクセル単位1exの値を示す整数または実数が得られます。exしかし、これは魔法の定数ではありません。フォント ファミリとフォント サイズに依存します。

注: IE 7 などの一部の古いブラウザーでは、フォントの x-height を適切に使用する代わりにex、単位を単位の半分として誤って実装しています。em

于 2013-12-09T07:46:55.780 に答える