在Android 4.0.x的字体面不工作(font-face on android 4.0.x d

2019-07-17 11:46发布

我在建设有JQM移动应用程序,我需要声明与字体面自己的字体。

我包括字体的css文件fonts.css在我的index.html第一加载CSS文件,并宣布该font-faces是这样的:

@font-face {
    font-family:"MyFont";
    font-weight:normal;
    font-style:normal;
    src:url("fonts/MyFont.woff");
    src:url("fonts/MyFont.eot?") format("eot"),
        url("fonts/MyFont.woff") format("woff"),
        url("fonts/MyFont.ttf") format("truetype"),
        url("fonts/MyFont.svg#MyFont") format("svg");
}

我的两个测试设备的Google Nexus 7Android 4.2.1Motorola Razr采用Android 4.0.4。

在谷歌Nexus,它的作品无论在移动浏览器和使用PhoneGap的。 但在摩托罗拉的Razr,它与移动浏览器才有效。 无论是普通的Android浏览器和PhoneGap的不使用MyFont

有没有什么解决方法获取的Android 4.0.x版的我的字体的工作?

Answer 1:

有趣。 我有相反的经验。

我有一个Galaxy Nexus的运行4.2.1(CM 10.1),这是加载的字体完全罚款,直至升级,但已经开始越来越具有自更新的CSS很奇怪(仅在本地的WebKit,而不是浏览器,它仍然有效) 。

我意识到这不是字体面的问题,但该CSS特异性越来越搞砸了(使用引导作为基础,然后用我自己的CSS取代)。 即使内嵌样式不显示,如果包括引导,如果引导去除一切工作正常。 很奇怪。

至于你我的问题,一对夫妇的想法相反:

  • 为什么第一SRC与.woff? 我与IE向后兼容模式.eot见过它,但使用的浏览器.woff应该能够从第二SRC使用它。 也许尝试去除第一SRC? (这不应该成为问题,因为WebKit的应与第二SRC覆盖)

  • 你是如何加载字体文件? 从本地存储? 从Web服务器? 我知道用Firefox如果与字体文件的服务器是同类型的文件不同,它不会加载没有允许Origin标。

  • 你需要加载其他非WebKit浏览器这一相同的字体定义呢? 如果没有,考虑取消除.woff的所有文件。

  • 你确定问题是字型脸? 尝试的字体声明设定到非默认的系统字体(如“衬线”)。 看看正在应用的字体声明,或者会不会是你的字体面是好的,但CSS是有点不适用的字体类型? (由于已经过去的这一周我的情况)

这是一个有点很难知道没有其他信息。 您的@ font-face声明,比第一SRC是一个.woff的其他古怪,似乎像它应该工作的罚款。 我的猜测是问题出在其它地方,而不是与该代码片段。

编辑:

我找到了我的问题---在Android 4.2.1 CSS选择text-rendering:是从行为Chrome和以前的Android版本完全不同。 如果你正使用该选项,查看是否更改或删除其修复该问题为您服务。 这是我能想到的,我已经看到了为不同的唯一事情如何的Android 4.0和Android手机,4.2的WebKit已经被渲染字体。



文章来源: font-face on android 4.0.x doesn't work