Why is text rendered with a greater font-size in O

2019-02-21 17:44发布

问题:

I'm working on an HTML page that needs to be more or less pixel-perfect, and I noticed that in Opera 10, fonts are rendering larger than they do in other browsers, even though the font-size is effectively the same.

Please see this example page in Opera 10 and another browser like Firefox 3.6:

http://troy.onespot.com/static/stack_overflow/opera_font_size.html

Alternatively, here's a screenshot that illustrates the issue:

http://skitch.com/troywarr/d47m1/font-size

The red boxes behind the "50px" and "46px" text (both styled to have the corresponding font-size) both have a height of 50px.

In Firefox 3.6, the descender of the "p" in "50px" lines up with the bottom of the red box behind it. In Opera, the descender of the "p" in "50px" hangs below; it's the "46px" that more closely matches the "50px" in Firefox. That suggests to me that Opera is rendering fonts in the ballpark of 10% too large.

This, and the same issue with other body text, is completely throwing off my page layout in Opera 10. Please let me know if you have any ideas about what may be causing this, or at least how to prevent/fix it.

Thanks!


UPDATE:

It appears that I don't have a proper copy of Helvetica installed - I removed it from the font stack and saw no difference in the rendered text on my test pages.

I updated the test pages to only use the generic "sans-serif" font-family, so hopefully we're all seeing the same thing now.

Interestingly, using the generic "serif" font displays exactly the same in Opera and Firefox.

Could this issue just be a quirk around how Opera displays the generic "sans-serif" font?


UPDATE 2:

This may be important: I'm using Mac OS X Snow Leopard. I'm experimenting with other fonts now to see if I can isolate the issue any further.


UPDATE 3:

I created another test page using Arial:

http://troy.onespot.com/static/stack_overflow/opera_font_size_reset_arial.html

And now Opera and Firefox match almost exactly!

I can probably get away with using Arial in lieu of Helvetica on this project. As far as I know, I have a completely stock OS X version of Helvetica - so I can't afford any disparity between how different users may be seeing the fonts on my page. I'll stick with the tried & true Arial.

What could this mean, though - does OS X's default sans-serif font just render strangely in Opera or something?

回答1:

My suspicion is that Opera uses a different fallback font for Sans-serif than the other browsers do. That should be possible to confirm or eliminate by using a different font that is definitely installed on the system.



回答2:

I came across this thread when I was having similar issues with Opera 11.10 on Windows 7 x64.

Opera was defaulting to using 20px as the body font-size (rather than 16px which is what other browsers use). This persisted even after uninstalling, deleting Opera preferences and re-installing. It turns out that Opera will honor your system font-size preferences (set under 'Control Panel\Appearance and Personalization\Display' on Win7) for rendered website text whereas other browsers (I tested FF4, Chrome 11, Safari 5, IE 9) do not. My system font size was set to 125% which explains the 20px. Once I set my system font zoom to 100%, Opera behaved the same as the others.

I'm not sure which behavior is more correct (In a way, it's nice that Opera honors my font choice) but since since other browsers do not do the same, it is "unexpected". I don't have a Mac to test but perhaps MacOS has a similar system font preference?



回答3:

I was having a similar issue.

I found that the default computed font size in FF and most other browsers on is 16px, but on opera the default seems to be 20px.

I simply set font-size:16px; for html, and it seemed to take care of it.



回答4:

I'm not reproducing your problem. This is what I get in Firefox 3.6.8 (and in Internet Explorer 8):



回答5:

I think I know your problem. I am getting it exactly the same size in all browsers (at least Firefox, Opera and Chrome). This, I am sure, can be easily overlooked if you dont know you or someone else has done this, but try checking the zoom settings in Opera... let me know if it doesnt help and I will work some more on it.



回答6:

This is where a css reset stylesheet can really simplify things for you.

http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/



回答7:

I had similar issue until I used reset CSS of Eric Meyer :)



回答8:

Came across similar issues, had to change my fallback order from:

font-family: Helvetica, Verdana, Arial, sans-serif;

to

font-family: Helvetica, Arial, sans-serif;

Since Arial and Helvetica are almost exactly the same size, when opera falls back it still looks good.