2

重複の可能性:
jqueryを取得してフォントサイズをポイントで返す

jQueryを使用して、以前のバージョンのWebアプリケーションで行っていた16ptに設定しています。問題は、コードを次のように設定した後のある時点です。

$(SELECTED).css("font-size","16pt");

私はそれをフェッチする必要があります。フェッチすると、16ptではなく21pxが返されます。使用できる変換率、または16ポイントを取得する方法はありますか?

var fetched_size = $(SELECTED).css("font-size");

渡す必要のあるオプション、またはそれを処理する別の方法はありますか?

この質問へのフォローアップとして、私は物事が私が構築しているものに彼らがすべきように彼らが見ているように見えていないことに気づきました。私のデータを保持しているテキストボックスは、特定の情報を保持しているようです。以下がうまくいかない理由を知っていますか?

var x = "32";
$("#fontsize").val(decodeURIComponent(x));  //this points to a input:text
 //the above statement doesnt seem to override the current contents with the value of x.
4

3 に答える 3

4

css計算されたスタイルにアクセスするためのものだと思います。ビルトインstyleプロパティを直接使用するだけです。

var fetched_size = $(SELECTED)[0].style.fontSize;
于 2012-08-24T18:08:39.253 に答える
0

Webにはptをまったく使用しないことをお勧めします。pxまたはemsを使用します。ポイント(pt)は印刷デザイン用に作成されたものであり、画面ベースの使用法ではほとんど意味がありません。

編集:さらに、ptサイズが画面上で使用されるように作成されていないため、ptとpxの間で正確に変換する方法はありません。これが大まかな換算表です

ems / pxの使用について詳しくは、http://kyleschaeffer.com/best-practices/css-font-size-em-vs-px-vs-pt-vs/をご覧ください

于 2012-08-24T18:06:06.400 に答える
0

この方法で変換率を取得できます。

var ptToPx,
    o=document.createElement('div');
o.style.width='1000pt';
document.body.appendChild(o);
ptToPx=o.clientWidth/1000;
document.body.removeChild(o);
o=null;
var pxToPt=Math.pow(ptToPx,-1);

それで、

alert('10px are '+10*pxToPt+'pt');
alert(10+'pt are '+10*ptToPx+'px');
于 2012-08-24T18:18:45.920 に答える