Firefox呈现:相同版本、相同操作系统、不同结果

Firefox呈现:相同版本、相同操作系统、不同结果,firefox,layout,render,Firefox,Layout,Render,我正在测试一个站点,在同一个操作系统上使用同一个Firefox版本会得到不同的结果 这将在橙色按钮上显示其中一些问题。它同时显示了在Windows 7上新安装Firefox的同一页面的结果(最上面的一个是在Windows虚拟PC上运行的) 渲染引擎是否可能具有不同的设置?你知道为什么会这样吗?有办法解决吗 谢谢根据我对虚拟机的经验,虚拟显示器通常比物理显示器小。当虚拟显示器不处于全屏模式时,自然会有一个窗口框架等,因此,为了适应物理显示器,虚拟显示器自然会变得更小。我不知道为什么会这样,但我相信

我正在测试一个站点,在同一个操作系统上使用同一个Firefox版本会得到不同的结果

这将在橙色按钮上显示其中一些问题。它同时显示了在Windows 7上新安装Firefox的同一页面的结果(最上面的一个是在Windows虚拟PC上运行的)

渲染引擎是否可能具有不同的设置?你知道为什么会这样吗?有办法解决吗


谢谢

根据我对虚拟机的经验,虚拟显示器通常比物理显示器小。当虚拟显示器不处于全屏模式时,自然会有一个窗口框架等,因此,为了适应物理显示器,虚拟显示器自然会变得更小。我不知道为什么会这样,但我相信我有时会看到尺寸上的细微差别,即使是在“全屏模式”下,也会出现这种情况,而全屏模式似乎在您的屏幕截图中使用


因此,如果按钮在虚拟显示屏上实际上更宽,我有点惊讶。屏幕截图上的标签“Windows 7”与“Windows 7(Windows虚拟PC)”是否有可能颠倒?或者,251与256像素的标签是相反的?

很可能,图形硬件加速在虚拟机中不可用。这使得Firefox使用GDI而不是DirectWrite进行文本呈现,这意味着文本没有亚像素定位,字体度量也略有不同。因此,如果按钮大小取决于文本的渲染大小,则按钮的大小将不同


您应该能够在
about:support

中查看图形加速状态,谢谢您的回复!标签是正确的,我得到的结果与Adobe浏览器实验室的虚拟结果相同。哇,伙计,看起来你在写!VM确实禁用了DirectWrite。我还注意到,这些尺寸问题与自定义字体有关。你认为有没有办法检查Firefox是否启用了JS或CSS的DirectWrite?不容易。您可以尝试使用
getBoundingClientRect()
测量一些文本片段,并查看它们的宽度是否为非整数。我认为GDI不会发生这种情况,虽然我不确定,但DirectWrite应该经常发生这种情况。再次感谢Boris,我会尝试一下。祝你好运。但还有一点需要注意:在非Windows操作系统上,还可以进行亚像素渲染。可以追溯到几年前的MacOS和Linux。请注意,但是相同字体的字体度量可能不同于DirectWrite或GDI。所以最好不要依赖于特定的字体标准。。。