假设您正在浏览 Google 网页字体以查找可在您的网站上使用的免费字体。您找到了您喜欢的字体…
您认为它在您的网站上作为标题会很好看。因此,您按照 Google 网页字体“快速使用”中的说明进行操作。
1) 将 CSS 链接复制/粘贴到页面
<link href='http://fonts.googleapis.com/css?family=Spicy+Rice' rel='stylesheet' type='text/css'>
2) 将 font-family CSS 复制/粘贴到您的标题 CSS 中
h1, h2, h3, h4, h5 {
font-family: 'Spicy Rice', cursive;
/* Your other headings CSS */
}
就这样!您做到了,您的标题现在使用您专门选择的字体
但是,您开始注意到字体比您想要的有点模糊。可能很难解释,但它看起来并不像您在 Google 网页字体中选择它时那样好。或者也许其他人注意到,并且
问题是字体比您最初看到的更模糊,这完全是关于font-weight
的。
您会看到,浏览器中标题的默认字重是“粗体”(或更确切地说,是 700)。如果您在选择此字体时仔细观察,您可能会注意到
如果您在以下情况下,您可能会成为此问题的受害者
- 您没有使用重置,也没有为标题指定
font-weight
(默认为用户代理样式的bold
)。 - 您使用的是Normalize.css,而不是重置,它不会调整
font-weight
,因为bold
是跨浏览器一致的默认值。 - 您明确地将标题的
font-weight
设置为bold
(例如,如果您使用重置)。
这并非 Google 网页字体或字体本身的错误。只是这种字体没有粗体字重,而您正在明确要求它。这意味着浏览器会尝试为您加粗字体,这可以做到,但做得不是很好(因此很模糊)。
修复它很简单,只需使用您的字重来匹配字体提供的字重即可。
h1, h2, h3, h4, h5 {
font-family: 'Spicy Rice', cursive;
font-weight: 400; /* Be specific */
/* Your other headings CSS */
}
所以是的。简而言之
这个问题在装饰字体中最常见,因为在那里通常只提供一种字重。我会说来自 Typekit 等付费服务的字体通常提供更多字重,但这并不意味着它不会成为 Typekit 的问题,因为明智且推荐的做法是加载尽可能少的字重以减轻页面加载负担。
另外请注意,这在斜体中也是一个常见问题。假设您决定加载一个字体的正常、粗体和斜体版本。如果您的文本同时是粗体和斜体,浏览器将不得不伪造它(因为它没有提供粗体斜体版本),并且看起来会很糟糕。 它发生在我身上在这个网站上,但我认为加载额外的整个站点版本不值得,所以我只是尽量避免这种情况。
很棒的帖子!喜欢使用表情包!
我也注意到 Google 字体显示中有一些差异,所以非常具体地识别字重是一个很好的建议。顺便说一句,我喜欢这些插图。
这仅适用于标题。
当然,还有一些其他元素;只是想澄清一下,这并非所有内容的默认值。
我同意。Chris,为了清楚起见,您应该重复一下您正在谈论标题。
我已经更新了它,使其更具体。
此外,是 700 而不是 800,我已经修复了它。
此外,值得注意的是,
<strong>
的默认样式是“更粗”,这是一个特定的关键字,它会相对于继承的字体加粗,这也可能导致本文中说明的问题。映射继承更粗
100 400
200 400
300 400
400 700
500 700
600 900
700 900
800 900
900 900
嗨,Chris
我从不在这里评论,但我总是非常感兴趣地关注您的帖子,但今天我想说我真的很喜欢额外的表情包 :)
我喜欢这篇文章,但我发现 @font-face 有点太新了。这些网页字体各有不同的表现,因此调整文本缩进、填充等对于回退来说几乎是不可能的。
我希望每个人都能获得一个更新的浏览器 :)
哇,谢谢,Chris
我以前注意到这种模糊,并且永远无法解释它,现在我感到非常高兴
<3
我对于一些网页字体遇到了完全不同的问题。它们看起来“像素化”,并且非常扭曲。我为 Droid Sans 使用常规字重 (400),无论如何,字体看起来都很糟糕。我使用了一些技巧(小的笔划、抗锯齿等),但它看起来仍然很糟糕。您知道为什么吗?
这里有一个示例:http://antjanus.com/testing
我没有看到字体有任何问题;它们都非常平滑。我在 Windows 上遇到过这个问题,而在我的 Mac 上运行良好。可能是这样。
我在 @font-face 中遇到过问题,但不幸的是,这不是由于这个问题造成的,因此它们仍然没有修复,即使使用为它们制作好的 CSS。
谢谢。它们在我的 Mac 上显示正确,只是在 PC 上没有。这很烦人。
有趣的是,我在 browserlabs 中测试了该网站,结果不一致,其中一个是 Chrome 14 以极差的方式呈现字体,而 Chrome 13 以完美的 o.o(无论系统如何)呈现字体。很奇怪
一如既往,很棒的建议。是的,我曾经被 @font-face 问题困扰,由于字重问题,它让我抓狂。我最终解决了它,但希望再次遇到这个问题的人能立即找到您的帖子。
你疯了吗,老兄!?
啊,只是在开玩笑。好帖子,Chris;绝对值得一读。
啊,谢谢!当我使用“Lobster”字体作为我一个网站上的标题时,我无意中成了这个问题的受害者。
非常棒的解释。我最近尝试弄清楚这个问题,并感到非常沮丧 :-P
表情包完美无缺!
粗体不是定义为 700 而不是 800 吗?我没有来源,只是我一直都这么认为。
正确。已修复。
我以为我点击了错误的收藏夹链接,然后进入了 9gag。不错的添加。
您是如何找到这些解释的?我以前也遇到过这个问题,但无法解释,谢谢。
抱歉,但我从未成为这个问题的受害者。我曾经是受害者,我感觉很糟糕。
这真的很 informative。我最近经常遇到这种情况,并且一直以为自己疯了!
顺便说一句,我喜欢表情包。
很高兴看到您在帖子中使用了一些 Troll 表情包。
这也是为什么(在创建您自己的 @font-face 规则时)不应在 font-family 名称中包含“Bold”,并且应该在 @font-face 规则中指定 font-weight 的原因。
此外,不太为人知的是,您可以为同一个 font-family 使用多个 @font-face 规则,这些规则具有不同的 font-style 和/或 font-weight。
这样,当你在样式表中使用它时,回退也会获得正确的格式。所以如果你有一个
h2 { font-family: Bar, sans-serif; font-weight: bold; font-style: italic;
它会选择 @font-face 规则中最接近的一个,如果找不到字体,它会使用回退字体并使用相同的权重/样式属性来确定它。我看到很多网站都使用“font-family: SomethingBold; font-weight: normal;” 并且有 css 重置,然后使用“h2 { font-family: SomethingBold, Arial; }” 这会导致
– 当找不到字体时,回退为不加粗
– 在字体加载期间,回退为不加粗
我以为每个人都这么做。我认为像 Font Squirrel 的 生成器 这样的工具甚至会输出这样的示例 CSS 来与字体文件一起使用。
“你的浏览”?Chris,我有点失望 :P
感谢您的提示。一如既往,我在 css-tricks 上学到了一些东西 :)
已修复该拼写错误,谢谢。
继续使用 meme-s .. 这会给您美味的文章增添更多辣味;)
memes,你做对了!
在两个图中,“我超爱它”和“为什么你讨厌字体?”,字体与像素完全相同,Chris。
正确。您看到它有效并且很高兴,但随后很快意识到有些事情不太对劲。
很棒的信息,我喜欢那个棍子人!
看起来 Chris 发现了 9gag.com 好帖子,喜欢这些 meme。
有用,感谢您澄清这些内容,我肯定会被导入字体的字体权重困扰。
感谢 Chris!
在一周前开始玩 Google 字体。您的帖子真是及时雨。
感谢 Chris!
为了确保包含链接的标题在 IE8 上也具有字体权重继承,我推荐这样
但是 IE7 仍然需要特定的类,例如
新的 Twitter 使用了这种技巧,看看 这个 pastebin 上的第 123 行
Chriscoyier 新年快乐!
太酷了 *_*
感谢您分享此内容,我也注意到有些字体无法正确缩放。我更喜欢使用 @FontFace 而不是使用 Cufon。
感谢 Chris,非常有用的文章!我非常喜欢这个网站!
Meme 面孔 = 胜利
修复我遇到的问题 = 胜利
Meme 面孔 + 修复我遇到的问题 = 双彩虹!
感谢 Chris!
这帮助很大。谢谢!
我以前遇到过这个问题,但我不知道它是什么。谢谢,我也喜欢 Meme 面孔!
新年快乐,
在阅读本文之前,我不了解 @font-face,这帮助很大。谢谢!
Balakrishna
感谢您告知字体权重问题,我一直想知道为什么我的博客上的字体外观与 Web Fonts 库中的略有不同。
很棒的内容!有用!
真是太及时了,我刚遇到这个问题。感谢 Chris。
很棒的帖子,非常有用!我之前在使用 @font-face 规则和 CSS 重置时已经遇到过这个问题。
Chris Coyier 真是棒,感谢您对此进行深入研究! ;-) 欢呼!
哈哈,天哪 - 我一直试图覆盖主题的默认字体,而这在 3 分钟内就解决了问题。我反正还是个新手!非常感谢您。
非常感谢您抽出时间发布此内容!我遇到了完全相同的问题,并且非常沮丧!