2012-09-04 68 views
0

我見過很多這方面的帖子,但人們寫道,它只是在Windows Chrome中渲染不正確。就我而言,它是包括IE在內的大多數瀏覽器。 Cleartype默認打開,所以這不是問題。谷歌字體在windows中是參差不齊的

我不能相信Windows無法正確處理Google字體。也許,那裏有人可能會有一個可行的解決方案或合理的回退。

對Windows機器使用Arial是明智嗎?是否有腳本檢測操作系統類型,如果是,我應該實現它嗎?我知道我應該選擇一種基本的字體,但我不妨請OSX人羣呢?

編輯:

我應該補充說我正在使用新聞週期。它甚至在Google字體網站上18px及以下看起來很糟糕。

+0

是的,因爲你的用戶使用的操作系統決定了它們可以讀取的字體...... – Brad

+0

我之前有過這個問題。我不得不改變字體重量的Windows v 6和總共...我使用的谷歌字體變得太薄... – jtheman

+0

可能重複[字體呈現不同,當使用MAC與PC](http://stackoverflow.com/questions/6498855/font-rendering-different-when-using-mac-vs-pc) – Brad

回答

1

明智地選擇你的字體,並經常測試。谷歌字體是一個驚人的資源,但並不是所有瀏覽器/平臺上的所有字體都能正確顯示或清晰顯示。

編輯: 谷歌有很多關於字體的資源。你需要研究'字體堆棧',這將爲你選擇後備字體提供一些信息。恕我直言,我真的不認爲用戶代理嗅探在這種情況下,有必要...

這是一個相當不錯的一篇文章,雖然有點老 http://coding.smashingmagazine.com/2009/09/22/complete-guide-to-css-font-stacks/

+0

不幸的是,我正在學習這個難題! – Adam

+0

這是web開發的方式 - 難的方法;) – piatek

+0

謝謝我會閱讀那篇文章,但不要字體堆棧只使用下一個最好的字體,如果第一個不存在?在這種情況下,新聞週期字體存在,但它看起來很糟糕。 – Adam

2

我不知道鋸齒渲染問題,但對於回退,您可以使用JavaScript中的navigator.userAgent屬性檢測操作系統。

Windows用戶代理包含子NT x.y,例如NT 6.1是爲Windows 7

編輯:您也可以使用navigator.appVersion屬性。這裏有一個例子:

if(navigator.appVersion.indexOf("Win") != -1) 
    OS = "Windows"; 
if(navigator.appVersion.indexOf("Mac") != -1) 
    OS = "MacOS"; 
if(navigator.appVersion.indexOf("X11") != -1) 
    OS = "Unix"; 
if(navigator.appVersion.indexOf("Linux") != -1) 
    OS = "Linux"; 

if(OS == "Windows") { 
    //add specific styles 
} 

要自動化的過程中,你可以使用CSS User Agent,這增加了類根據不同的操作系統元素。

1

我只有在Chrome中的問題在Windows上。一個解決方法曾經是添加一個不可見的文本陰影或旋轉文本只是一點點,但自從版本16後,它已停止工作。我發現有時下面的CSS屬性可以幫助一些字體:

-webkit-text-stroke-width: .5px;