2013-01-22 143 views
0

我目前有一個應用程序的web視圖。 webview加載css,確定每個設備應該使用的特定字體。Android 2.3.X css字體家庭後備不工作

對於我的iOS設備,我使用HelveticaNeue CondensedBold,因爲它包含在iOS5 +中。由於我不能用於早期的iOS和Android,因爲它不是我使用Google的OpenSans-CondensedBold的系統字體。

我遇到的問題是在使用2.3.X的Android設備上。字體家族後備不起作用。由於HelvelticaNeue字體不存在,它只是失敗,不會回退到下一行的OpenSans。

font-family: 'OpenSans-CondensedBold', 'Helvetica', 'Arial'; 

如果我從CSS在上面的例子中刪除HelveticaNeue-CondensedBold,所述OpanSans字體工作在Android完美。

當前CSS下面。

@font-face { 
    font-family: 'OpenSans-CondensedBold'; 
    src: url('/webfonts/opensans-condbold.eot'); 
    src: url('/webfonts/opensans-condbold.eot?#iefix') format('embedded-opentype'), 
     url('/webfonts/opensans-condbold.woff') format('woff'), 
     url('/webfonts/opensans-condbold.ttf') format('truetype'), 
     url('/webfonts/opensans-condbold.svg#OpenSans-CondensedBold') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

body { 
    font-size: 13px; 
    font-family: 'HelveticaNeue-CondensedBold', 'OpenSans-CondensedBold', 'Helvetica', 'Arial'; 
    font-weight: normal; 
    font-style: normal; 
} 
+0

**經過進一步調查,我意識到這是默認爲手機的系統字體。如果我更改了設置的系統字體,在設置新的字體顯示。 – Michael

+0

用戶代理:Mozilla的/ 5.0(Linux的; U;安卓2.3.6; EN-US; SCH-I510 4G構建/ EP4)爲AppleWebKit/533.1(KHTML,例如Gecko)版本/ 4.0移動版Safari/533.1 – Michael

+0

我這樣做現在,即使我討厭。如果(navigator.userAgent.match(/的Android/I)){ \t document.body.style.fontFamily = 「OpenSans-CondensedBold」; } – Michael

回答

0

你可以嘗試編碼字體文件爲Base64數據URI ..煎茶觸摸2也是這樣做的,它似乎工作。

做到這一點上傳您的字體文件在這裏http://dopiaza.org/tools/datauri/index.php 然後使用生成的代碼在你的CSS這樣

@font-face { 
    font-family: "My Font"; 
    src: url(data:application/x-font-woff;base64,[base-encoded font here]) format('woff'), 
     url(data:image/svg+xml;base64,[base-encoded font here]) format('svg'), 
     url(data:application/x-font-ttf;base64,[base-encoded font here]) format('truetype'); 
} 
的情況下,

你使用指南針,它appearantly有了a method對編碼的字體文件飛

a related問題也是這個方法

+0

這比回答的評論。請考慮修改它以包含OP應該做的一個例子。 –

+0

是啊,我認爲太多,但不幸的是我無法找到問題的「添加註釋」按鈕..雖然編輯答案 – pirmin