2013-03-29 206 views
0

我想确定我想用于我的网站的字体。了解字体家族

为什么,当人们指定font-family他们给字体列表?有没有一种方法可以指定只使用一种字体?根据用户访问网站时使用的浏览器,列表中是否使用了不同的字体?

这是我见过别人做:

body { 
    font: 14px Cambria, Hoefler Text, Liberation Serif, Times, Times New Roman, serif; 
    color: rgba(51,51,51,1); 
} 

有什么理由不去做这样的吗?

body { 
    font: 14px Cambria; 
    color: rgba(51,51,51,1); 
} 

回答

2

有两个原因指定的字体作为font-family值的列表。

首先,您的主字体可能未安装在用户的系统中。例如,Cambria只存在于相对较新版本的Windows中。这个例子中的字体列表并不是特别好,因为在大多数情况下,坎布里亚不可用,它会回落到Times New Roman,这是常见的浏览器默认设置,并且在典型的屏幕上不能很好地工作。

其次,文本中可能存在主字体不支持的字符。例如,如果文本包含“℀”(U + 2100 ACCOUNT OF),则列出的所有字体都没有 - 因此将使用依赖于浏览器的后备字体,这通常会导致印刷不匹配。 (因此,如果这些字符可能出现,列表应该更长。)有些浏览器(某些版本的IE)甚至可能无法呈现字符,除非您通过使用合适的字体列表向他们伸出援手。

当今人们经常通过@font-face使用可下载的字体(网络字体),并希望它们可以在所有浏览器中使用,以便不需要列出其他字体。但是,即使可下载的字体可能也会失败:字体加载可能会失败(网络问题),或者浏览器中的设置可能会阻止使用可下载的字体。这就是为什么即使使用可下载的字体,备用字体也是一个好主意。

使用可下载的字体作为主字体时,还原字体的另一个原因是:下载可能需要一些时间,并且在等待字体时,浏览器使用备用字体呈现文本。当字体被下载时,浏览器变成它。为了减少这种有点令人不愉快的“闪光”效果,您可以尝试指定一个备用字体或备用备用字体,它与可下载的字体非常相似。

3

它们备用字体。如果列出的第一个字体在操作系统上不可用,则使用下一个字体。如果不可用,则使用后面的那个。等等。最后一个通常是所有系统(即衬线)都可用的通用字体。

+0

有没有办法克服这个问题(即强制客户机使用所需的字体显示)?也许与JavaScript? – William

+2

如果字体不在他们的机器上,他们如何使用它?您可以尝试使用[@ font-face](https://developer.mozilla.org/en-US/docs/CSS/@font-face)强制下载字体,告诉他们下载它,但它是一项新技术,并不能100%依赖。 –

+0

但是不会有很多字体是浏览器标准的吗?字体在机器上存储在哪里?在操作系统级别或个人程序级别还是其他? – William

1

那些额外的字体是后备。如果客户机不具备的第一个字体,它会寻找第二个,第三个,等...

有什么理由不去做这样的吗? body { font: 14px Cambria; color: rgba(51,51,51,1); }

如果你想使用特定的字体,或者一个接近它,你将不得不包括后备字体。如果你不介意浏览器使用默认的系统字体,那么它是否包含它们并不重要。