我的客户想要使用的字体是“快递”。并非每台计算机或智能手机上都安装了Courier。如果不存在,它会退回到“ Courier New”。 “ Courier New”是比“ Courier”更细的字体,并且我希望页面的外观在不同的OS和浏览器上尽可能一致。所以我想:如果未安装“ Courier”,为什么不使用“ Courier New Bold”?见下图:


创建此图像后,我变得更加困惑。我在CSS中的字体系列声明中添加了更多字体名称,以介绍如何在不同的OS上调用字体(“ Courier New Bold”)。这是新的声明:

font-family: Courier, CourierNewPS-BoldMT, 'Courier New Bold', 'Courier New Fett', monospace;


现在出现了一个奇怪的部分:在Windows XP中的Chrome上,文本像以前一样稀薄地被渲染。移动Safari也是如此。

我怀疑这是什么:Chrome(WinXP)和Mobile Safari仅检查我声明的第一种字体。他们看到它是“快递”。他们没有安装“ Courier”,因此为“ Courier New”提供服务。它们没有考虑我在CSS中声明的其他字体。

抱歉,冗长的帖子。我的问题归结为:如何使文本在所有操作系统和浏览器上始终显示为“ Courier”或“ Courier New Bold”?

您可以找到the live example here

更新:我已经阅读了-webkit-font-smoothing: antialiased;并将其添加到CSS中,但这不能解决问题。在Windows和iOS上,文本看起来仍然稀疏得多。

Update2:This post from 2007解释了Courier如何在iOS上显示为Courier New,以及它为何烂透。不过,我不确定新版本的iOS是否仍然具有相同的功能。

最佳答案

CSS缺少编程功能,因此您无法在CSS中表达诸如“以正常粗细使用字体A,否则以粗体显示字体B”之类的内容。用CSS术语来说,字体系列和字体大小彼此独立。

如果您已经检查了Courier不允许嵌入,请检查创建的类似于Courier的可用免费字体。对于初学者,请查看
http://en.wikipedia.org/wiki/Courier_%28typeface%29#Free_alternatives
如果客户可以接受其中的一些,则可以将其与@font face一起使用。 (我假设您已经向客户解释说Courier是最差的选择,与Comic Sans竞争,并且在仍然可用的计算机上,Courier的视觉大胆性可能是由将其实现为位图字体引起的,如果客户仍然坚持,免费的类似Courier的字体可能是最简单,技术上最可靠的方法。)

关于css - CSS:Courier字体在Windows和iOS上呈现不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11860857/

10-09 23:50