2

スパン内の各文字の幅と高さを計算する最良の方法は何ですか?

たとえば、html は次のようになります。

 <span style="font-size:12px">Test 100<span>

したがって、1 つの方法は、スパンのスタイルを使用して各文字のダミー スパンを作成し、それを dom に追加して、高さと幅を取得することです。

クエリを使用した例:

 var x = $('<span style="font-size:12px">' + 'T' + '</span'>);
 $('body').append(x); 
 var h = x.height(),  w= x.width();
 x.remove();

しかし、これは非効率的です。それを行う他の方法はありますか?

4

2 に答える 2

4

文字が占めるスペースの量は、隣にある文字によって異なるため、文字のサイズを実際に取得することはできません。

たとえば、隣り合う と の文字はA、の隣のや の隣Vの よりも互いに近くなるようにカーニングされます。同じ数の文字をインターリーブして配置すると、同じ文字の隣に配置するよりもスペースが少なくてすみます。AAVV

AVAVAVAVAVAVAVAVAVAVAVAVAVAV
AAAAAAAAAAAAAAAVVVVVVVVVVVVVV

于 2012-11-15T23:55:18.947 に答える
1

毎回スパンを作成する代わりに、スパンの innerHTML を変更して幅を取得してみてください。これははるかに高速であり、多くの検証をトリガーしません。

試してみると、動作が速くなりますか?

于 2012-11-15T23:42:09.473 に答える