繁体   English   中英

Android 2.3.X CSS字体族回退不起作用

[英]Android 2.3.X css font-family fallback not working

我目前有一个带有网络视图的应用程序。 Webview加载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;
}

您可以尝试将字体文件编码为base64数据uri。sencha touch 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'); 
}

如果您使用的是指南针,它似乎有一种动态编码字体文件的方法

这个方法也有一个相关的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM