【问题标题】:CSS - white text on black background, looks bolderCSS - 黑色背景上的白色文本,看起来更大胆
【发布时间】:2013-01-06 18:54:19
【问题描述】:

当在黑色背景上使用白色文本时,文本看起来比它应该看起来更胖。它带有css的纯文本。我正在使用 typekit.org 字体。

有什么办法可以解决这个问题还是某种抗锯齿问题?

【问题讨论】:

  • 不,这是错觉,在photoshop中打开并反转颜色,看起来一样。
  • @BenjaminGruenbaum - 我刚刚做了,不,它看起来不一样。
  • 在 Chrome 中,我把这个小提琴 jsfiddle.net/YxHkz 截屏,然后放大得到这个:cl.ly/image/3k1U1N3Z240C 在我看来,它的像素与像素完全相同。
  • 也许您使用的字体有白色边框...您是否尝试过检查?也许改变背景和字体颜色,看看是否有任何白色边框的痕迹......
  • 这不是错觉。这是一个渲染问题。对于某些开发人员来说,抗锯齿导致的像素差异的一小部分可能并不明显 - 但对于受过设计培训的人以及在 Illustrator / Photoshop 和浏览器之间工作的人来说,这是令人眼花缭乱的。不要对这个问题投反对票 - 这是完全合法的。

标签: css fonts background


【解决方案1】:

我发现font-smoothing: antialiasedfont-smoothing: grayscale(就像其他人提到的)和text-rendering: optimizeLegibility 的组合可以在浅色和深色以及不同的浏览器中产生一致的结果。您需要在每个浏览器中进行适当的测试,因为您不会对每种字体都获得相同的结果。有时只设置font-smoothing 可以解决问题,有时只设置text-rendering 可以解决问题,有时您需要同时使用两者。

【讨论】:

    【解决方案2】:

    这不是错觉。这是一个与操作系统和浏览器相关的问题,在 2018 年仍然存在。这个小 sn-p 演示了这个问题:

    <div style="background-color: #000; font-size: 16px; position: relative;">
      <div style="color: #fff;">Hello World</div>
      <div style="color: #000; position: absolute; top:0;">Hello World</div>
    </div>

    如果您坐在 macOS 盒子前,您可能会注意到白色轮廓。它们是过度激励字体平滑的结果。尝试使用 -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; 来减少这种影响。

    【讨论】:

      【解决方案3】:

      其实就是一个knownbug

      我可以通过以下方式解决此问题:

      -webkit-font-smoothing:antialiased
      

      来源:this article (cached on archive.org)

      有点晚了,但对某些人来说可能仍然有用。

      请记住this is not recommended。除非您使用的是 MacOS,并且在深色背景上使用浅色文本。

      【讨论】:

      • 两个存档问题和 5 年后最新的 Chrome 仍然在 MacOS 上以完全恶心的方式在深色背景上呈现浅色文本。这太糟糕了......
      • @PawełGościcki macOS 有一个系统范围的“stem darkening”设置,这是 Apple 对增肥事物的花哨名称。转到“系统偏好设置”>“外观”并关闭“可用时使用 LCD 字体平滑”。这将关闭整个操作系统的增肥功能,包括 Finder 和 Terminal.app 等内置应用程序。和谷歌浏览器。
      • @Dev 你绝对不想在你的操作系统中禁用字体平滑。如果你这样做,一切都会看起来更糟。此外,在 MacOS 上,此选项不再存在,您需要执行命令并重新启动。
      • @PawełGościcki 这与禁用抗锯齿不同,它只是禁用茎变暗和 子像素 抗锯齿。我多年来一直使用关闭“字体平滑”的 Mac,它看起来好多了。子像素 AA 通常设计用于像素密度相对较低的屏幕,您可以在其中看到单个像素和子像素实际上对准确性很重要。在 Retina 显示器和高分辨率 PC 显示器上,它没有多大帮助。灰度 AA 在这些屏幕上绰绰有余。所以结合词干变暗消失,禁用字体平滑就可以了。
      【解决方案4】:

      文本是粗体的,因为您的浏览器中使用了抗锯齿算法。很容易验证。在 IE、Safari、Firefox 和 Chrome 中截屏。他们都以不同的方式抗锯齿。有些使文本看起来比其他文本更厚。一般来说,更好的文本看起来是黑底白字,它看起来越胖。

      这里有完整的解释:http://www.lighterra.com/articles/macosxtextaabug/

      这将在大多数浏览器中关闭抗锯齿功能:

      body {
      -webkit-font-smoothing: antialiased;
      -moz-font-smoothing: antialiased;
      -o-font-smoothing: antialiased;
      }
      

      【讨论】:

      • 是的,这行得通 - 当人们试图声称它是一种视错觉而显然不是时,这真的很烦人!
      • 我觉得moz版本应该是-moz-osx-font-smoothing: grayscale 见this answer
      • 嗯,我仍然在带有白色文本的 chrome/windows 上获得更厚的字体渲染。
      猜你喜欢
      • 2017-04-23
      • 1970-01-01
      • 2021-12-03
      • 2011-01-16
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多