字体大小似乎适用于字体“框”的高度,就我所知,这个“框”在字体文件本身中定义。因此,对于相同的字体大小,任何字符(无论其视觉高度如何)都应位于等高的框内。 那么,字符的宽度在哪里定义? 每个字符的宽度也需要与字体大小相关联,但是每个字符似乎都有不同的宽度(通过这个测试或这个测试)。它不像高度那样规则。因此,定义每个字符的宽度的不是字体中定义的框的宽度。 那么,它是在哪里/如何定义的呢?
字体中每个字形(字符)的定义都有一个宽度值,该值与字体大小成比例。因此,对于TrueType字体,字体大小通常被分解为2048个单位。然后,每个字形的宽度定义为同样数量的单位。例如,使用Arial字体,字符“i”的宽度为180个单位(AW -(LSB + RSB)= 455-(136 + 139))。 而 w 的宽度为1457个单位(AW - (LSB + RSB) = 1479 - (6 + 16)) (图片来自TypeLight 3.2)
据我所知,宽高比是一种更或多或少标准的比例。它通常不会改变。字体大小属性是缩放宽高比的一种方式。对于给定的字体,比例保持不变。这里有一个链接提供有关比例图表的更多细节: https://www.lifewire.com/aspect-ratio-table-common-fonts-3467385 因此,如果像素中的字体大小定义了高度,则宽度由字体系列的宽高比定义,您可以通过style.fontSizeAdjust更改它,根据文章所述。