在Firefox中控制可预测的字体渲染

时间:2019-03-26 07:51:07

标签: css fonts automated-tests rendering gtk3

我在Docker和CentOS 7.5上安装了Firefox,并在装有CentOS 7.5但没有Docker的计算机上安装了Firefox,并且比较了使用著名的Roboto Web字体的页面的屏幕截图。

两个环境都具有完全相同的Firefox版本,并且理论上具有相同的CentOS版本,但是任何yum update都可能破坏事物。

它们不是逐像素相同的。我认为字体是相同的,似乎抗锯齿和/或提示有些不同。

出于自动化测试的目的,我需要受到控制,并且避免再次拍摄屏幕截图。

关于如何控制它的任何线索?

上图是Docker内部的CentOS,下图是CentOS独立的:

Docker vs no Docker

使用的CSS:

Used CSS

**更新**

在使用font-kerningtext-renderingfont-smoothing玩了一点之后,文本具有相同的间距,但大小却略有不同,并且有些像素也有所变化:

[![带有Docker的上端,没有Docker的下端] [3]] [3]

1 个答案:

答案 0 :(得分:1)

没有统一的解决方案(如here所述),因为每个浏览器/操作系统都有自己的字体呈现引擎。

不过,您可以尝试使用以下任何CSS属性来查看它们是否可以帮助您解决问题(永远不会100%进行,但手动摆弄这些属性可能会让您足够接近:

.item {
  font-kerning: none/auto/normal/...;
  text-rendering: optimizeLegibility/...;
  font-smoothing: auto/normal/... 
}

或尝试类似letter-spacing

如果没有这些工作,您总是可以尝试提到here

的文本阴影黑客程序(即使它已经很老了)。