在 Windows 上,在某种程度上也在 Mac OS 上,使用不同的浏览器(Firefox、Chrome、Safari),我们的菜单栏具有相当像素化/模糊的字体渲染。这是在使用 Bootstrap 4.1.3 的 ASP.NET Core 2.1 站点上,但只需简单的 HTML 即可轻松重现:https ://jsfiddle.net/2tgc9r84/
<html>
<body style="background-color:#e72c87;">
<p style="font-size:20pt;">
This is some text that looks terrible.
</p>
</body>
</html>
有趣的是,相同的字体在网站的其他区域也能很好地呈现。我在激活了 150% 缩放的 4K 显示器上注意到了这一点,但问题也显示为 100%。我也尝试过使用不同的字体,所以显然这也不是字体的问题。
最初我认为这是透明度或转换的问题,但最后,我尝试简单地更改背景颜色 - 结果证明这种模糊在红色和深蓝色(当然,它们的组合,如洋红色)中非常明显,并且与大多数其他颜色几乎不可见。此外,通过更改主背景颜色,我可以重现其他区域的问题。
您可以在此处直接查看发生这种情况的站点:https ://beat-the-rhythm-vr.com/Home/Social (接受 cookie 后显示带有模糊文本的导航)。
这是一张显示不同背景效果的图像,并且也在 Mac OS 上渲染(Mac OS 屏幕截图在图像中显得更小):
据我所知,这在 iOS 上根本不会发生。在 Mac 上,我在屏幕上看不到问题,但在制作屏幕截图时确实很明显。但是,由于屏幕截图的缩放,这也可能是一个伪影。
这就是它在 iOS 上的样子(当窗口足够小以获得与移动设备上相同的布局时,我在 Windows 上得到同样的模糊,所以这也不是导致这个/修复这个的问题):
显而易见的问题:有没有办法解决这个问题,如果有,如何解决?
编辑:这是对波特答案的评论(我无法在评论中添加屏幕截图,所以我在这里发布):
编辑 2:虽然这篇文章是关于一个稍微不同的问题,但我的猜测是,我所看到的实际上只是 ClearType 的一个限制,它与文章概述的内容有关:Color-aware ClearType requires access to fixed background pixels, which如果您不知道背景像素是什么,或者如果它们没有固定,这是一个问题
当背景颜色未知时,ClearType 显然不起作用,从我所见,它似乎主要是为白色背景上的黑色文本设计的,也适用于深色背景上的浅色,但不是真的那么多对于红色/蓝色/洋红色背景(和任何字体颜色)。