2013-08-18 46 views
1

我一直在嘗試使用Google字體API爲我的網站使用Ubuntu字體,但由於Google字體和安裝在本機上的本地Ubuntu字體之間的衝突,我遇到了一個問題。最終的結果是,我無法使用font-weight 400下的Ubuntu字體;我被限制在300和500的字體重量。主要網站的字體重量爲300,但我希望使用字體重量400來強調我的標題。如何防止Google字體請求本地字體?

我想通過編輯Google Fonts用來刪除對本地字體的所有引用的CSS來規避這種情況。我已經嘗試過這個手動,它的工作原理。問題在於,Google提供的CSS是針對瀏覽器自定義的,因此編輯CSS並在本地保存會導致字體僅適用於與我使用相同瀏覽器的用戶。

那麼,是否可以動態編輯CSS來刪除對本地字體的引用?

我有一個粗略的解決方案的想法,但沒有足夠的教育知道它是否可以實際執行。基本上,可以有一個PHP腳本,最終用戶通過​​請求。該PHP文件讀取用戶的HTTP請求(包括瀏覽器信息),然後使用完全相同的HTTP信息向Google Fonts API 發送請求。 Google Fonts提供了我們用戶所需的CSS。其餘的是字符串操作。這可以工作嗎?

回答

0

然後您必須手動創建字體請求。所以,你可能會要求http://fonts.googleapis.com/css?family=Ubuntu。去那裏(在不同的瀏覽器中 - 它爲每個瀏覽器提供請求)並複製代碼。我現在只會使用它在Chrome中提供的內容,但會包含不同的字體格式。它說:

@font-face { 
    font-family: 'Ubuntu'; 
    font-style: normal; 
    font-weight: 400; 
    src: local('Ubuntu'), url(http://themes.googleusercontent.com/static/fonts/ubuntu/v4/_xyN3apAT_yRRDeqB3sPRg.woff) format('woff'); 
} 

將它複製到您的本地CSS,刪除源參數中的local。然後,只需將名稱改爲font-family

@font-face { 
    font-family: 'Webuntu'; 
    font-style: normal; 
    font-weight: 400; 
    src: url(http://themes.googleusercontent.com/static/fonts/ubuntu/v4/_xyN3apAT_yRRDeqB3sPRg.woff) format('woff'); 
} 

最後,更新您的字體引用,使用新的名稱:

p { font-family:'Webuntu', sans-serif; } 

沒有必要的PHP :)