2013-08-18 18 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 :)