背景:我正在尝试使用字形位图进行字体渲染,并且需要一种方法来验证我是否在屏幕上以正确的大小渲染文本。
所以当有人说:font-size: 64px
这64应该出现在哪里?我在HTML中尝试了相同的练习,但是现在我比开始之前更加困惑。这就是HTML使用渲染文本的方式font-size: 64px
。红线-我试图height: 64px
在这些字母周围放一个框:如您所见,我找不到将64px与可视字母匹配的方法。
有人可以告诉我这64px应该出现在哪里吗?
我知道字体大小是一本很老的东西,它来自物理印刷机,并且也考虑了一些间距,但是数字时代是否没有任何逻辑/规则?字体文件中是否完全任意?假设我要制作一种新的字体:关于64px字体的大小没有任何指导原则吗?
最初,字体大小是通过所谓的em-square度量的,即大写M字符的水平宽度:
字体的高度称为'em',它源自大写字母'M'的宽度;这样做的目的是使该字母的比例为正方形(因此称为“ em square”)。(http://designwithfontforge.com/zh-CN/The_EM_Square.html)
在CSS中,font-size
inpt
或px
表示该em-square(如果有的话)。但:
前几天,我看了一堆大学水平版式课程的课程幻灯片。其中一个声称从基线(例如H的字母的底部)到顶帽高度(例如H的字母的顶部)的距离是点的大小。我希望那是真的,因为这比现实要简单得多。平均而言,帽高约为点大小的70%。(http://www.thomasphinney.com/2011/03/point-size/)
因此,我想您的问题的答案是:取决于情况。em-square仍然是指导原则,但是字体的实际大小在很大程度上取决于设计者,并且通常比em-square大得多。或者,您可以尝试在该70%标记的基础上构建,并寻找64px中的70%(大约为45px)作为正常大写字母(例如H或M)的高度。
我还发现此链接对于CSS中的印刷问题很有帮助:https : //iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align
PS注意,em-square
两个引号都涉及的这种印刷与em
CSS中的-unit不同。在CSS中,em
是相对于父容器(或浏览器中的默认设置)的字体大小。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句