2

可能重复:
让 jquery 以点为单位返回字体大小

使用 jQuery,我将某些内容设置为 16pt,因为这是我以前版本的 Web 应用程序所做的。问题是在我将代码设置如下之后的某个时间点:

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

我需要去拿它。当我获取它时,它不会返回 16pt,而是 21px。是否有我可以使用的转换率,或者获取 16pt 的方法?

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

您可以通过以下方式获得转化率:

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 回答
0

我建议你根本不要使用 pt for web。使用 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 回答