我正在使用 JQM 构建移动应用程序,我需要使用 font-face 声明自己的字体。
我包括字体css file 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 7
with 安卓4.2.1 and a Motorola Razr
with 安卓4.0.4.
在 Google Nexus 上,它既可以在移动 Chrome 上运行,也可以与 PhoneGap 一起运行。但在摩托罗拉 Razr 上,它仅适用于移动 Chrome。现有的 Android 浏览器和 Phonegap 都不使用MyFont
.
有没有任何解决方法可以让我的字体在 Android 4.0.x 上工作?
有趣的。我有相反的经历。
我有一台运行 4.2.1 (CM 10.1) 的 Galaxy Nexus,在升级之前加载字体绝对正常,但自更新以来 CSS 开始变得非常奇怪(仅在本机 WebKit 中,而不是 Chrome,后者仍然有效) 。
我意识到这不是字体问题,而是 CSS 特异性被搞砸了(使用 bootstrap 作为基础,然后用我自己的 CSS 替换)。如果包含引导程序,即使内联样式也不会显示,如果删除引导程序,一切都会正常工作。很奇怪。
至于你对我的问题的反面,有几点想法:
为什么第一个 src 带有 .woff?我已经在 IE 向后兼容模式下使用 .eot 看到过它,但是使用 .woff 的浏览器应该能够从第二个 src 中使用它。也许尝试删除第一个 src? (这不应该是问题,因为 WebKit 应该用第二个 src 覆盖)
您如何加载字体文件?来自本地存储?来自网络服务器?我知道在 Firefox 中,如果带有字体文件的服务器与带有该类型的文件不同,如果没有“Allow Origin”标头,它就不会加载。
您是否需要在其他非 webkit 浏览器中加载相同的字体定义?如果没有,请考虑删除除 .woff 之外的所有文件。
您确定问题出在字体上吗?尝试将字体声明设置为非默认系统字体(例如“serif”)。看看是否应用了字体声明,或者您的字体没问题,但 css 不知何故没有将字体应用到类型? (就像我上周的情况一样)
如果没有额外的信息,很难知道。除了第一个 src 是 .woff 的怪异之外,您的 @font-face 声明似乎应该可以正常工作。我的猜测是问题出在其他地方,而不是该代码片段。
Edit:
我找到了我的问题 --- 在 Android 4.2.1 上 CSS 选项text-rendering:
与 Chrome 和以前的 Android 版本的行为完全不同。如果您正在使用此选项,请查看更改或删除它是否可以解决您的问题。这是我唯一能想到的 Android 4.0 与 Android 4.2 webkit 在渲染字体方面的不同之处。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)