设置字体大小,使字母高度等于某个值

Posted

技术标签:

【中文标题】设置字体大小,使字母高度等于某个值【英文标题】:Setting font-size so that letter height equals a certain value 【发布时间】:2015-06-11 17:59:13 【问题描述】:

我想用 CSS 将一个字母缩放到另一个元素的确切高度。例如,我可能希望文本与某些图像一样高:

我怎样才能做到这一点?

当我将字体大小设置为等于图像的高度时,字母会变小。我可以尝试手动调整它,直到它看起来相等,但我想计算一下。


我目前的解决方案是将行高设置为图像的高度,并根据字体指标计算字体大小:

.the_image 
    height: 28px;
    

.the_M 
    line-height: 28px;
    font-size: calc(28px * 2048 / 1490);
    

在本例中,字体规格为 2048 UPM(每 em 单位),字母“M”为 1490 单位高。将 em 大小(2048 单位)除以字母高度(1490)得到一个因子,将“M”缩放到所需的高度(这里:28px)。

在这种情况下,我知道我使用的字体,因为我使用@font-face 嵌入了它,并且我知道字体的度量,因为我在字体编辑器中查看了它(我使用 Fontforge 和 Glyphs创建我的字体),但我仍然希望一种适用于未知字体的解决方案来自用户的计算机。

【问题讨论】:

我刚刚使用 chrome 开发工具检查了这个问题的部分文本,它看起来像文本“我怎样才能做到这一点?”是 17px,但 div 的计算高度是 22px,我认为你没有太多控制权,除非你将 line-height 也设置为 17px @Morpheus 查看我的编辑。 为什么需要设置div高度?为什么不能只设置字体大小,留下div 展开到字体高度? @Morpheus 我调整了我的例子。 ***.com/questions/10718840/… 【参考方案1】:

首先你需要设置位置,然后继承高度 比如:

    .the_M
           position : relative;
           height : inherit;
     

【讨论】:

以上是关于设置字体大小,使字母高度等于某个值的主要内容,如果未能解决你的问题,请参考以下文章

分配文本输入固定字体大小时,如何使文本输入和按钮具有相同的高度?

在Delphi中,如何利用滚动条改变字体的大小

移动端用户设置字体大小影响button大小,高度

如何调整字体大小以适应 UILabel 的高度和宽度

QML 以像素为单位获取默认字体高度值

通过文本字段上的自动布局调整字体大小并改变高度