【问题标题】:Opera not rendering certain characters from webfontsOpera 无法从 webfonts 渲染某些字符
【发布时间】:2012-04-04 00:35:16
【问题描述】:

也许它不应该。但请忍受我。我正在使用 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>

现在我该如何解决?

【问题讨论】:

    标签: html css font-face webfonts


    【解决方案1】:

    我也遇到过同样的问题。

    解决方案是:

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

    2. 清除 Opera 缓存;

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 在我的实际项目中,font-family 的定义与您所展示的完全一样。加粗的波罗的海字符仍然不会出现。
      • @donkapone,如果您提供实际页面的 URL,我们可以检查它在其他人的浏览器上的样子——这可能是特定于安装的问题。
      • MetalFrog 在这里提供了一个示例链接 jsfiddle.net/MetalFrog/gHhGv 我看不到粗体字符串。
      • @donkapone,在我的 Opera 11.61、build 1250、Windows 7 上,粗体字符串可见,为衬线字体。更令人惊讶的是,如果我将font-family 的值修改为'PT Sans', Arial, sans-serif,那么Opera 仍然以衬线字体呈现它。我的主要实用建议是:找到一种涵盖您需要的所有字符的字体。
      【解决方案3】:

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

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

      【讨论】:

      • 它没有通过 jsfiddle 显示给我。完全相同的 Opera 版本。不呈现粗体字符串。到底是怎么回事?
      • 我清除了歌剧缓存并重新加载了您的 jsfiddle 示例。页面加载时,粗体字符串出现了一秒钟,然后消失了。
      • 非常时髦。人力资源管理。当我遇到看似随机的事情时,我总是鄙视。这肯定有根本原因,我们如何缩小范围?
      • 在 Opera 11.61 on Linux (Debian KDE) 中完美显示。
      猜你喜欢
      • 1970-01-01
      • 2021-10-01
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多