Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it possible to create a Mac OS specific CSS to fix font difference?

I'm working on a project with a designer and he insisted on using some specific font for titles and various elements in the page. So we're using a font kit to embed with @font-face.

It's working perfectly on PC (Firefox, IE 7 and 8, Chrome, Safari) but on Mac OS (Safari and Firefox) the fonts are not vertically aligned the same way. After looking on the Web, I didn't find any solution for this except "there always been differences between browsers and platforms, live with it".

I know that fonts are never rendered exactly the same across platforms, but this time it's not something like the font looks more bold or something like that. The font looks as if it's baseline is completely different between Windows and Mac OS X. On Mac OS, the font, at a size of 16px is 3px higher than on PC.

So I'm looking for a backup solution : is there a way to create a CSS specifically for Mac OS users? I do not want to target only Safari because Safari PC is ok, and Firefox Mac is not ok.

Or if you have a solution to fix the baseline difference that does not require a specific CSS file, I'd be happy to hear it.

Thanks!

like image 680
Gabriel Avatar asked Jan 15 '11 22:01

Gabriel


People also ask

Is there a difference between Mac and PC fonts?

Well, Windows and Mac each have their own specification for the ascent and descent values. On a Mac, a font looks for the ascent and descent in something called the HHead table, whereas on Windows, a font looks for these values in the Win table.

Why is Macos font rendering so good?

Apple optimizes their rendering for WYSIWYG (what you see is what you get) when printing. You can see this with bold and italicized text. The difference between bold and non-bold text is more subtle on a Mac whereas on Windows it's much more obvious -- especially at smaller point sizes.


1 Answers

I'm afraid that browser/os sniffing is your only option. CSS itself has no knowledge of OS nor do i have ever heard of a css hack that targets osx specifically.

This is the easiest way for me to detect OSX and add the OSX class to the document body so you can override css styles for OSX specifically.

if(navigator.platform.match('Mac') !== null) {
    document.body.setAttribute('class', 'OSX');
}
like image 187
ChrisR Avatar answered Sep 20 '22 04:09

ChrisR