我正在开发一个需要或多或少像素完美的 HTML 页面,我注意到在 Opera 10 中,字体渲染得比在其他浏览器中更大,尽管字体大小实际上是相同的。
请在 Opera 10 和其他浏览器(如 Firefox 3.6)中查看此示例页面:
http://troy.onespot.com/static/stack_overflow/opera_font_size.html
或者,下面的屏幕截图说明了该问题:
http://skitch.com/troywarr/d47m1/font-size
“50px”和“46px”文本后面的红色框(两者都具有相应的字体大小)的高度均为 50px。
在 Firefox 3.6 中,“50px”中“p”的下降部分与其后面的红色框的底部对齐。在 Opera 中,“50px”中“p”的下降部分悬挂在下方; “46px”更接近 Firefox 中的“50px”。对我来说,这表明 Opera 渲染的字体大约大了 10%。
这个问题以及其他正文文本的相同问题,完全破坏了我在 Opera 10 中的页面布局。如果您对可能导致此问题的原因有任何想法,或者至少如何预防/修复它,请告诉我。
Thanks!
UPDATE:
看来我没有安装 Helvetica 的正确副本 - 我将其从字体堆栈中删除,并且在测试页面上渲染的文本没有看到任何差异。
我更新了测试页面,仅使用通用的“sans-serif”字体系列,所以希望我们现在都看到同样的事情。
有趣的是,使用通用的“serif”字体在 Opera 和 Firefox 中的显示效果完全相同。
这个问题是否只是 Opera 显示通用“sans-serif”字体的一个怪癖?
更新2:
这可能很重要:我使用的是 Mac OS X Snow Leopard。我现在正在尝试其他字体,看看是否可以进一步隔离问题。
更新3:
我使用 Arial 创建了另一个测试页面:
http://troy.onespot.com/static/stack_overflow/opera_font_size_reset_arial.html
现在 Opera 和 Firefox 几乎完全匹配!
在这个项目中我可能可以使用 Arial 代替 Helvetica 。据我所知,我有一个完全原装的 OS X 版本的 Helvetica - 所以我不能承受不同用户在我的页面上看到的字体之间的任何差异。我会坚持使用久经考验的真正的 Arial。
但这意味着什么——OS X 的默认无衬线字体是否在 Opera 或其他东西中呈现奇怪的效果?