其他分享
首页 > 其他分享> > android 4.0.x上的font-face不起作用

android 4.0.x上的font-face不起作用

作者:互联网

我正在使用JQM构建移动应用程序,我需要使用font-face声明自己的字体.

我将font css文件fonts.css作为我的index.html中第一个加载的css文件包含在内,并声明了如下字体:

@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");
}

我的两个测试设备是带有Android 4.2.1的Google Nexus 7和带有Android 4.0.4的Motorola Razr.

在谷歌Nexus上,它适用于移动Chrome和PhoneGap.但在摩托罗拉Razr上,它仅适用于移动Chrome. Android浏览器和Phonegap股票都不使用MyFont.

是否有任何解决方法可以让我的Font在Android 4.0.x上运行?

解决方法:

有趣.我有相反的经历.

我有一个运行4.2.1(CM 10.1)的Galaxy Nexus,在升级之前加载字体非常好,但是自更新以来已经开始变得非常奇怪(仅在原生WebKit中,而不是Chrome,它仍然有效) .

我意识到这不是字体问题,而是CSS特性被搞砸了(使用bootstrap作为基础,然后用我自己的CSS替换).如果包含引导程序,即使内联样式也不显示,如果删除了引导程序,一切正常.很奇怪.

至于你的问题的反面,有几个想法:

>为什么第一个带有.woff的src?我已经看到它与.eot的IE向后兼容模式,但使用.woff的浏览器应该能够从第二个src使用它.也许尝试删除第一个src? (这应该不是问题,因为WebKit应该用第二个src覆盖)
>你是如何加载字体文件的?从本地存储?从Web服务器?我知道在Firefox中,如果带有字体文件的服务器与具有该类型的文件不同,则在没有Allow Origin标头的情况下不会加载.
>您是否需要在其他非webkit浏览器中加载相同的字体定义?如果没有,请考虑删除除.woff之外的所有文件.
>你确定问题是字体吗?尝试将字体声明设置为非默认系统字体(例如“serif”).看看是否正在应用字体声明,或者可能是你的font-face正常,但是css在某种程度上没有将字体应用于该类型? (就像过去一周的情况一样)

没有其他信息,有点难以理解.你的@ font-face声明,除了第一个src的怪异是.woff之外,似乎应该可以正常工作.我的猜测是问题在于其他地方,而不是代码片段.

编辑:

我追踪了我的问题—在Android 4.2.1上,CSS选项文本呈现:与Chrome和以前的Android版本的行为完全不同.如果您使用此选项,请查看更改或删除它是否为您解决了问题.这是我唯一能想到的东西,我认为Android 4.0与Android 4.2 webkit的渲染方式有所不同.

标签:android,css,font-face
来源: https://codeday.me/bug/20191004/1852095.html