0

也许它不应该。但请忍受我。我正在使用 Google Web Fonts,并且包含 PT Sans 字体,如下所示:

<link href="https://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">

我什至有这样的 .htaccess 设置:

<IfModule mod_headers.c>
  <FilesMatch "\.woff$">
    Header set Content-Type "application/octet-stream"
  </FilesMatch>

  <FilesMatch "\.ttf$">
    Header set Content-Type application/octet-stream
  </FilesMatch>
</IfModule>

现在 PT Sans 字体不包括我正在使用的波罗的海 (ąčęėįšųūž) 字符。但是 Chrome、Firefox、IE 完美地呈现了它们——甚至不使用其他字体。Opera 只是跳过它们并留下一个空白空间。

刚刚意识到它只使用粗体字体。检查这个例子:

<!doctype html>
<html lang="en" class="no-js">
  <head>
    <title>Font test</title>
    <meta charset="UTF-8">
    <link href="https://fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
  </head>

  <body style="font-family:'PT Sans';">
    aceeisuuz<br />
    ąčęėįšųūž
    <p style="font-weight:bold">ąčęėįšųūž</p>
  </body>
</html>

现在我该如何解决?

4

3 回答 3

0

由于 PT Sans 字体不包含波罗的海字符,浏览器将使用一些备用字体。在页面样式表中没有对此声明的情况下,它们将使用它们的默认方法,因此可以预期浏览器的差异。

目前尚不清楚为什么 Opera 有时会失败,但更重要的是提供一些有计划的后备。要么选择完全不同的字体,要么至少在字体列表中指定一些替代字体,例如font-family: 'PT Sans', Arial, sans-serif. 这可以防止奇怪的混合,如 PT Sans 和 Times New Roman(常见的默认字体),也可以很好地规避 Opera 错误。

于 2012-03-19T17:12:23.333 回答
0

对我来说没问题,我只是把你的示例代码扔进了一个 jsfiddle。也许您的 CSS/页面还有其他问题?

http://jsfiddle.net/MetalFrog/gHhGv/

jsfiddle的截图

于 2012-03-19T14:12:50.437 回答
0

我遇到了同样的问题。

解决方案是:

  1. Google Web 字体页面 | 选择你的 cirilic 字体 | 快速使用 | 验证您的设置... -> 将 Cyrilic 设置添加到选择中。

  2. 清除 Opera 缓存;

于 2012-11-20T21:06:06.140 回答