字体系列中的字体显示大小不同

Posted

技术标签:

【中文标题】字体系列中的字体显示大小不同【英文标题】:Fonts inside a font family display different in size 【发布时间】:2014-05-05 06:18:54 【问题描述】:

每当我在设计中选择字体时,都会出现这个常见问题(每个设计师都常见),

例如我们为一个段落设置字体系列和字体大小如下,

p 
    font-family: 'Source Sans Pro', Arial, Verdana, sans-serif;
    font-size: 13px;

在 CSS(众所周知)中,当字体系列中的第一种字体不存在时,它会选择第二种字体,如果第二种字体不存在,则选择第三种字体,依此类推。

问题在于 Arial 在 13 像素处大于“Source Sans Pro”,而Verdana 在 13 像素处大于 Arial。 看这张图片:

这是每个设计师在每次考虑设计的字体系列时都会面临的问题。 我希望有一些 CSS 方法或 hack 来告诉浏览器在 13px 处获取“Source Sans Pro”但如果它不存在,则不要使用Arial 在 13 像素,而不是 在 12 像素处使用 Arial,如果连 Arial 都不存在,在 11 像素处使用 Verdana。 例如font-family-size: 'Source Sans Pro' 13px, Arial 12px, Verdana 11px; (这个规则在 CSS 中没有,这只是我的愿望)

总结:我们可以为整个字体系列(包含多个字体的字体系列)分配一个单一的大小,现在实际上每个字体大小都显示不同于其他字体(更小或更大)在同一字体系列中。

【问题讨论】:

CSS font-size changes when font-family falls back 的可能重复项 @kei ,是的,可能是这样,但我认为这个问题信息量更大,更详细.. 也许以后可以使用calc根据像素x-height调整字体大小? @ƊŗęДdϝulȻʘɗɇ 是的,兄弟,你是对的。 【参考方案1】:

您正在寻找的是font-size-adjust 属性——这个问题几乎完美的解决方案。当然,浏览器支持很糟糕:它只适用于 Firefox

这是一个示例(在 Firefox 中打开):http://jsfiddle.net/zL6vL/1/

【讨论】:

以上是关于字体系列中的字体显示大小不同的主要内容,如果未能解决你的问题,请参考以下文章

CSS为字体系列中的每种字体指定字体大小?

更改 iFrame 的字体大小和字体系列

什么是正确的指定为 CSS 字体系列值:字体、字体或字体系列?

fontDescriptorWithSymbolicTraits 方法返回不同字体系列中的新字体描述符引用,而不是 iOS13 上的相同字体系列

为选择标签中的单独选项更改 css 字体系列

Firefox 与 IE 和 Chrome 中的不同字体大小