【问题标题】:Font Rendering Issue in ChromeChrome 中的字体渲染问题
【发布时间】:2016-03-14 23:39:16
【问题描述】:

我发现我正在开发的网站存在问题,其中页面的内容区域显示带有字体渲染的随机伪影。这些页面使用的是 Google 字体“Source Sans Pro”,并且在下面的屏幕截图中除了 p 标记之外没有其他标记。看起来它在页面的某些部分使用了备用无衬线字体,而在其他部分使用了适当的字体。

我还注意到,如果我在控制台中打开和关闭 font-family CSS 属性,它会修复外观......此外,如果我刷新页面(而不是使用现场导航),它似乎也正确渲染。我无法在另一台装有最新版 Chrome 的机器上复制它,但它在我的开发和测试环境中是一致的。我使用的唯一扩展是 Disconnect、AdBlock、PageSpeed Insights、RSS 阅读器和 Javascript Quickswithcer……所有其他浏览器的行为似乎都符合预期。

使用的 CSS:

body,*{font-family: 'Source Sans Pro',sans-serif}

您知道为什么最新版本的 Windows 版 Chrome 会以这种方式呈现吗?

【问题讨论】:

  • 您的简化示例在哪里?剪掉除了一个出错的段落之外的所有段落,看看其中的标记 - 是否有一个具有不同样式的内联元素?另外,作为 CSS 提示,不要使用* 设置字体,它几乎永远不会做你认为它会做的事情。 CSS 已经是“级联”的,因此如果没有覆盖,为body 设置的字体将被其中的所有内容继承,除非有 CSS 可以覆盖:打开浏览器开发者控制台,找到覆盖(或者甚至只需右键单击文本'看起来不对',点击检查元素,看看发生了什么)。
  • 目前该站点仅在内部可用,尚未发布——没有带有样式的内联元素。屏幕截图中的示例只是一个接一个的 4 个

    标签。控制台中显示的字体系列的唯一样式是上面我原始帖子中显示的相应样式。感谢选择器提示,我将删除 *.

  • 没关系:我们不想要整个网站,不是整个网站都有问题,而是一些文本,所以你的问题应该可以重现为 jsbin 或类似的(它只是一些 HTML 和 CSS),所以...减少它(您可能会在减少时自己发现问题,总是在询问之前减少)然后发布?
  • 事实上,从该规则中删除 * 选择器似乎有很大的不同!
  • 我已经重新创建了我在 JSBin 中所做的核心工作,但没有看到相同的行为发生,但您的建议确实在我的环境中修复了它。 jsbin.com/cerifajife/edit?html,output

标签: css google-chrome fonts cross-browser


【解决方案1】:

我相信我遇到了类似的问题。我可以通过覆盖我使用的 CSS 框架在 body 标签上设置的 CSS text-rendering: optimizeLegibility 来修复它,如下所示:

body { text-rendering: auto; }

注意:为了追踪错误,我在 OSX El Capitan 上的 Chrome 版本是 48.0.2564.116(64 位)。一位同事告诉我这个问题,我必须切换到隐身模式才能开始看到这个问题。

【讨论】:

  • 在分享这个问题时,试着把它更多地表达为一个答案,而不是一个“我也是”的评论。您可以通过阐明 如何text-rendering: auto 覆盖它来做到这一点(在一个清楚地表明您在谈论 CSS 的示例中)。把你关于它是一个错误的猜测放在底部(或者更好的是,删除它,除非你能真正找到并链接到错误 - 实际记录错误并在此处链接它的额外积分。)
猜你喜欢
  • 2013-08-15
  • 1970-01-01
  • 2017-08-17
  • 2016-09-15
  • 2015-10-25
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 1970-01-01
相关资源
最近更新 更多