【问题标题】:CSS property "will-change" changes font color (subpixel font rendering)CSS 属性“will-change”改变字体颜色(亚像素字体渲染)
【发布时间】:2018-03-24 12:35:45
【问题描述】:

我使用的是 Bootstrap 4。但是打开下拉组件时,字体颜色略有变化。

在寻找一些可能是问题的颜色定义后(没有),我发现了一些奇怪的东西:当我禁用下拉元素的 transformwill-change 属性时,字体颜色会以某种方式受到影响.在这里看视频: https://www.dropbox.com/s/xkhl4m6enwvdzcd/Video%20color%20bug.mov?dl=0

在 Google Chrome 和 Cinema Display(视频)中最为明显。

似乎亚像素字体渲染受到影响: see screenshot here。 有趣的是:字体颜色在关闭时渲染得更准确。

在 Safari 中也会出现字体渲染问题...

知道这里发生了什么吗?

(我可以发布一个代码笔,或者在视频中查看它的 ID。)

【问题讨论】:

  • 据我所知,transformwill-change 可以让浏览器使用 GPU 渲染(而不是 CPU),这对于动画等效果更好。但是看不到颜色的变化你的例子。你说的变色是什么意思? color 财产?变化有多大?
  • 字体颜色不同是因为没有亚像素渲染,亚像素渲染消失是因为元素是通过单独的复合层渲染的(即上面提到的GPU渲染)。我不知道如何为此类元素“打开”亚像素渲染。
  • @giovannipds 在视频中查看左下角框中的文本。当“will-change”处于活动状态时,蓝色会发光。视频质量不是那么好,但在 Chrome 和 Cinema Display 上“实时”观看时,它非常令人不安。
  • giovannipds 和@ilya-streltsyn:感谢您的解释。至少现在我知道了……干杯!我还发现在其他显示器上几乎不明显,仅在屏幕截图中,您可以看到子像素渲染已关闭。

标签: html css twitter-bootstrap google-chrome font-rendering


【解决方案1】:

正如 Ilya Streltsyngiovannipds 在 cmets herehere 中提到的,这是 alpha 合成(亚像素渲染)的正常副作用,这是浏览器作为硬件加速渲染的一部分所做的(GPU) 由will-changetransform 带来。

【讨论】:

    猜你喜欢
    • 2011-08-02
    • 2018-03-23
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 2021-11-16
    • 2020-06-19
    • 1970-01-01
    • 2021-09-30
    相关资源
    最近更新 更多