字体大小实际上是什么意思?
我们来看看CSS。我有font-size
我可以在pixels
,points
等处指定一个号码。
那么,12px
是什么意思? 20pt
是什么意思?它是字符的最大宽度,是最小宽度吗?是最大高度吗?
我是否确定font-size: 10px
的5个字符不会超过50px
,不会少于{{1}},或者恰好是那个宽度?
答案 0 :(得分:18)
每种字体都有一个内部比例,相对于字形绘制。这是任意的,取决于字体设计者。字母“M”的内部高度可以是0.5,1或700个内部单位。
尺寸为10px时,一个内部字体单位= 10px。
根据字体的设计,这可以呈现任意大小的字形,不受约束。
答案 1 :(得分:4)
通常字体大小定义为像素 = px 或点 = pt
注意:72 pt等于1英寸= 2,54 cm
屏幕的分辨率以px定义。 显然,相同尺寸的显示器上的像素越多,每个像素越小,因此如果在px中定义font-size,则字体大小越小。
那么,有什么区别?
当你看到它们在行动中时,很容易理解字体大小单位之间的区别。通常,1em = 12pt = 16px = 100%。使用这些字体大小时,让我们看看当您将基本字体大小(使用正文CSS选择器)从100%增加到120%时会发生什么。
正如您所看到的,随着基本字体大小的增加,em和百分比单位都会变大,但像素和点数不会增加。可以很容易地为文本设置绝对大小,但访问者可以更轻松地使用可在任何设备或任何计算机上显示的可伸缩文本。因此, em和百分比单位是Web文档文本的首选。
来源:http://kyleschaeffer.com/best-practices/css-font-size-em-vs-px-vs-pt-vs/
答案 2 :(得分:4)
正如其他答案所说,没有保证,但我们经常需要一些近似的经验法则。经验:这是三种真实的字体,120px。灰色块对应于Chrome中呈现的span
(填充= 0),叠加的红色矩形高120像素。
我们看到(至少对于这些字体;记住:无保证)大小可以被同化为“名义高度”,其涵盖大多数(但不一定是所有)常见字符的后代和后代。
答案 3 :(得分:3)
根据W3建议 pt 通常用于打印,而 px 用于屏幕。
但问题是CSS px 不一定是实际的屏幕像素。对于移动设备而言,这是显而易见的,移动设备的默认像素比例不是1比1。
查看this article了解更多细节。
对于网站,通常,您应该在 px 中设置基本字体大小,并使用 em 设置不同元素的后续大小。
答案 4 :(得分:1)
嗯......每个人都已经解释了单位的意思,所以唯一要回答的就是从哪里去测量。我的猜测是从您使用的那种字体中所有字符的最低点到最高点。也就是说,从本文的“上升高度”到“下降高度”:Wiki - Typeface
答案 5 :(得分:0)
这在很大程度上取决于您使用的字体。 以默认的SO字体为例: 10'm比10'我宽: mmmmmmmmmm IIIIIIIIII
但是将它声明为'代码',我们得到一种所谓的等宽字体,两者都具有相同的宽度:
mmmmmmmmmm
iiiiiiiiii
即使在这里,高宽比也取决于字体。
所以你明确的答案是:不。你无法确定。
答案 6 :(得分:-1)
pt = point(1 pt与1/72英寸相同)
px =像素(计算机屏幕上的一个点)
答案 7 :(得分:-1)
尝试calc可以提供帮助
此外,在一段代码中(为了显示图形/文本的图案然后打印)我使用了两个独立的代码执行方向:一个用于打印案例,另一个用于展示案例。
一切都在pt。要将输入数据以cm为单位转换为pt,我使用了:
double mesUnitCm = 1 / 2.54 * 72; // pt in 1 cm.
展示柜尺寸计算与印刷案例不同,因为它们取决于屏幕分辨率,屏幕上的图案缩放等。然后,您获得的显示点数量适合打印页面上应该为1厘米:
double in1cm = a.pageFormat.getImageableHeight() / yourPatternSizeInCm;
显示的比例可以计算为:
double scale = in1cm / mesUnitCm;
要重新缩放字体,请获取其大小编号(以pt为单位)并使用比例系数调整其大小:
... (TextAttribute.FONT, Font.decode(myFontName + "-" + myFontStyle + "-" + (int) (myFontSize * scale))) ...