当font-family退回时,CSS字体大小会发生变化

时间:2009-05-06 14:39:15

标签: css

我想使用一种字体(gill sans),由于x高度较短等而呈现非常小的字体等。如果我将其设置为合理的尺寸,然后浏览器会回归到更典型的字体我'在font-family中指定,后备字体渲染非常大 - 我可以根据浏览器使用的字体设置字体大小吗?

6 个答案:

答案 0 :(得分:18)

我使用Calibri时遇到了同样的问题(与大多数sans字体相比略小)。我最终做了以下(假设你有jquery):

  1. 获取Remy Sharp的字体检测脚本http://remysharp.com/2008/07/08/how-to-detect-if-a-font-is-installed-only-using-javascript/

  2. 将以下内容添加到$(document).ready()函数:

    $(document).ready(function() {
        font.setup();
        if(!font.isInstalled('Calibri'))
            $('body').css('font-size','87.5%');
    });
    
  3. 所以现在如果用户没有Calibri,我们看到Arial为87.5%。这仅适用于未定义/继承font-size的元素。无论何处显式定义font-size,都必须进行调整(可能为这些元素添加一个类并将jquery选择器更改为$('.adjustClass'))

    如果你能这样做会很好: font:11px Calibri, 10px Arial; - 但没有这样的运气:)

答案 1 :(得分:1)

我建议你尝试指定当字体不可用时优雅降级的级联字体,例如

Arial, FontThatsLikeArial, FontThatsALittleLikeArial, FontThatsALittleLessLikeArial, Sans-serif;

或者,如果您想要严格控制字体,请看一下cufon,这不需要您的用户拥有任何插件,并且可以在大多数现代浏览器上使用。 http://wiki.github.com/sorccu/cufon/about

答案 2 :(得分:1)

几周前写了一篇有趣的文章来讨论这个话题。

您可以在此处阅读文章:http://kilianvalkhof.com/2009/css-xhtml/combining-cufon-and-font-face/

简而言之,本文正在使用一些方法... @ font-face用于现代化浏览器,jQuery字体检测脚本和Cufon用于字体替换,如果先前的方法失败。

这不是一个完美的解决方案。和上面提到的许多人一样,最好的办法是使用一种优雅降级的字体。

尝试将字体堆栈设置为类似的东西 'GillSans,Calibri,Trebuchet,sans-serif' - 用于段落副本,或 'GillSans,Trebuchet,Calibri,sans-serif' - 标题和标题

答案 3 :(得分:0)

  

我可以根据浏览器使用的字体设置字体大小吗?

不幸的是,不,不是在CSS中。

答案 4 :(得分:0)

我建议您使用在访问您正在构建的网站的大多数(/所有)计算机上找到的典型字体。由于浏览器(IE相关问题是另一个主题......),网站的视图不应该有所不同。 使用常用字体或类似工作的替代品......

答案 5 :(得分:-1)

您可以在正文选择器中指定字体大小,从而中和浏览器的默认大小,即

body { font-size: 62.5%; }

62.5%是一个很好的基线,因为它允许您轻松使用ems来相对设置体内元素的字体大小。

62.5%,1em = 10px,1.2em = 12px,等等。

只需在体内设置字体大小作为基线和样式元素。