javascript - Chrome 有时在重绘之前不会呈现 Google 字体

标签 javascript css google-chrome fonts

我在 Chrome 上遇到了一个奇怪的文本呈现问题,有时文本根本不会呈现,直到某些东西触发浏览器重绘。

这是问题的截图

broken fonts

这就是它应该看起来的样子。

correct rendering

当它确实失败时,只要我打开开发工具,字体就会正确呈现。

当开发工具已经打开时出现问题,更改字体大小将使文本出现。

有趣的是,当我重新设置字体大小时,文本又消失了。例如:

$('p').css('font-size', 12); // Text appears
$('p').css('font-size', 13); // And its gone again.

当我删除 Google 字体后,问题就完全消失了。这是我的字体引用,我不认为这里有什么问题吗?

<link href='https://fonts.googleapis.com/css?family=Roboto:400,700,300' rel='stylesheet' type='text/css'>

我发现了一个错误报告,看起来像我的问题 here但它已在 Chrome 34+ 中标记为已修复,我正在运行 49。

我无法在任何其他浏览器中复制它。

很想听听任何能够为我指明正确方向的人。如果您需要更多信息,请告诉我!

最佳答案

经过几个小时的头痛,我想我找到了我的问题。

就在我发布的屏幕截图下方,有一个嵌入式 Youtube 视频。事实证明,youtube 使用与我们相同的字体 (Roboto)。当我删除 Youtube iframe 将我们的应用字体更改为另一种 Google 字体时,问题就消失了。这让我认为下载字体时存在某种冲突..?我真的不确定。

我确实通过在页面底部(而不是链接标记)通过 Javascript 包含它来让 Roboto 工作。这让设计人员很高兴 :)

关于javascript - Chrome 有时在重绘之前不会呈现 Google 字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37127822/

相关文章:

html - 定位跨度在 Chrome 中被裁剪

javascript - 重新声明 JavaScript 变量有什么用吗?

javascript - 如何使用 css 将两个 primefaces 按钮居中?

javascript - Knockout 将可观察数组与另一个 ViewModel 关联起来

css - 根据高度设置宽度

html - 查找丢失图像的最佳方法是什么

google-chrome - 是否可以自动更新 chrome 网上商店上发布的 chrome 扩展程序?

php - Ajax 如何将 Javascript 字符串传递给 php

html - 如何在 div 上重叠图像,但仍将文本环绕在图像周围?

javascript - JavaScript 控制台中的颜色