我有一个类似这样的CSS声明:
font-family: font1, font2, font3;
其中font1是一个嵌入式的eot/ttf字体,但问题在于这个字体比其他字体要小,所以我想为这个字体(font1)设置不同的字号(1.8em),而其他字体(font2、font3)则不变。
问题在于,我无法确定用户的浏览器是否使用了font1、font2或者font3。有没有CSS声明可以允许为不同字体系列设置不同的字号呢?
谢谢。
有一种方法可以做到这一点,但目前支持非常差。您要查找的CSS属性是font-size-adjust
,这是一个新的CSS3属性,专门用于解决此问题。规范说:
在字体回退发生的情况下,回退字体可能与所需的字体系列不共享相同的纵横比,因此会显得不太可读。
font-size-adjust
属性是一种在字体回退发生时保持文本易读性的方法。它通过调整字体大小使x高度始终相同,无论使用何种字体。
然而,目前它只在Firefox中受到支持,因此您可能需要寻找替代方案。
有关如何使用它的示例,请参见:
http://webdesignernotebook.com/css/the-little-known-font-size-adjust-css3-property/
https://developer.mozilla.org/en/CSS/font-size-adjust
http://www.fonttester.com/help/css_property/font-size-adjust.html
http://www.w3.org/TR/css3-fonts/#relative-sizing-the-font-size-adjust-pro
我知道已经过了一段时间,但最近我遇到了与OP描述的完全相同的问题。由于font-size-adjust
的支持仍然非常差,我想分享另一个对我有效的解决方案:
注意:以下解决方案仅在使用@font-face
声明嵌入字体时有效。
在这种情况下,只需包含例如:
size-adjust: 90%;
在你的@font-face
声明中。相关字体将以指定大小的90%显示。
浏览器支持目前为74%,除了Safari和IE之外,所有主要浏览器都得到支持。我知道这远非最佳选择。但由于这个问题“只是”关于设计而不是功能,我认为这总比没有好。