Firefox渲染:相同的版本,相同的操作系统,不同的结果

问题描述:

我正在测试一个网站,并且在相同的操作系统上使用相同的Firefox版本获得不同的结果。Firefox渲染:相同的版本,相同的操作系统,不同的结果

这个screenshot显示橙色按钮上的一些问题。它同时显示了Windows 7上全新安装的Firefox上的同一页面的结果(最上面的一个正在Windows Virtual PC上运行)。

渲染引擎可能有不同的设置吗?你知道为什么发生这种情况吗?有没有办法解决它?

谢谢

很可能,虚拟机中没有图形硬件加速功能。这使得Firefox使用GDI代替DirectWrite进行文本渲染,这意味着没有文本的子像素定位和略微不同的字体度量。所以如果按钮的大小取决于文本的渲染大小,按钮会出现不同的大小。

您应该能够检查about:support中的图形加速状态。

+0

哇,看起来像你写的! VM确实禁用了DirectWrite。我还注意到这些尺寸问题与自定义字体有关。你认为有办法检查Firefox是否启用了使用JS或CSS的DirectWrite? –

+0

不容易。你可以尝试使用'getBoundingClientRect()'测量一些文本片段,并查看它们的宽度是否为非整数。虽然我不确定,但我认为GDI无法实现,但应该经常使用DirectWrite。 –

+0

再次感谢鲍里斯,我会试一试。 –

我对虚拟机的经验是虚拟显示器通常比物理显示器小。当虚拟显示器不处于全屏模式时,自然会有窗框等,所以虚拟显示器自然会趋向于更小以适应物理显示器。我不太清楚这可能是什么原因,但我相信我有时会看到尺寸略有差异,即使是在“全屏模式”下,即在屏幕截图中似乎正在使用的模式。

所以我有点惊讶,如果按钮实际上更宽的虚拟显示。有没有机会将标签“Windows 7”与“Windows 7(Windows Virtual PC)”在屏幕截图上颠倒过来?或者,251与256像素标签是颠倒的?

+0

感谢您的回复!标签是正确的,我得到了与Adobe浏览器实验室的虚拟相同的结果。 –