CSS @font-face 有时可以在 Internet Explorer 中运行,但并非总是如此

标签 css internet-explorer font-face mime-types webfonts

我在使用 Internet Explorer 11 中的 Web 字体时遇到问题。字体适用于某些使用 IE11 的用户,但对其他用户无效,即使它们是同一个浏览器。 Modernizr.fontface 仍然会为遇到问题的用户返回 true,因此我可以排除这种情况。

下面是 CSS...

@font-face {
    font-family: 'Balthazar';
    font-style: normal;
    font-weight: 400;
    src: url('/assets/fonts/Balthazar/Balthazar.eot'); /* IE9 Compat Modes */
    src: local('Balthazar Regular'), 
         local('Balthazar-Regular'),
         url('/assets/fonts/Balthazar/Balthazar.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
         url('/assets/fonts/Balthazar/Balthazar.woff2') format('woff2'), /* Modern Browsers */
         url('/assets/fonts/Balthazar/Balthazar.ttf')  format('truetype'), /* Safari, Android, iOS */
         url('/assets/fonts/Balthazar/Balthazar.svg#Balthazar-Regular') format('svg'); /* Legacy iOS */
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000;
}
<remove fileExtension=".woff"/>
<mimeMap fileExtension=".woff" mimeType="application/x-font-woff" />
<remove fileExtension=".woff2"/>
<mimeMap fileExtension=".woff2" mimeType="application/x-font-woff2" />
<remove fileExtension=".ttf"/>
<mimeMap fileExtension=".ttf" mimeType="application/x-font-ttf" />
<remove fileExtension=".eot"/>
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
<remove fileExtension=".svg"/>
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
<remove fileExtension=".svgz"/>
<mimeMap fileExtension=".svgz" mimeType="image/svg+xml" />

IE 尝试呈现 ttf 文件,因此我认为这可能是 mime 类型问题。部分原因是:我将 mime 类型更新为 application/x-font-ttf,这至少为一个用户修复了它,但另外两个用户仍然遇到这个问题。然后我尝试在 WOFF2 之后添加一个 WOFF,但仍然没有用。

我很迷茫。请帮忙。

最佳答案

试试这些……

1。检查 DRM 错误

IE 11 "bulletproof" font-face and fall back fonts not working如果您按 F12,重新加载页面,并查看 F12 工具的控制台选项卡,您是否看到任何错误消息,例如“@font-face failed OpenType embedding permission check.”?如果您这样做,则可能是字体上的 DRM 问题,IE 11 尊重而其他人不尊重。

2。 (再次)检查 MIME 类型设置

确保 mime 类型与此处回答的匹配(您列出的不匹配):“Proper MIME type for fonts

3。确保 CSS 名称与字体文件中的名称匹配

如果这不起作用,那么在 CSS 中声明为字体名称的名称是否与存储在文件本身中的名称相匹配? http://www.experts-exchange.com/Web_Development/Blogs/WordPress/Q_28367854.html

4。使用 Google Webfont 加载器

如果修复 mime 类型不能解决您的问题,请尝试使用此答案中所述的 google fonts webfont loader:https://stackoverflow.com/a/21289510/356550

关于CSS @font-face 有时可以在 Internet Explorer 中运行,但并非总是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33178329/

相关文章:

html - 绝对 Div 被裁剪为负边距

internet-explorer - 如果浏览器支持,则在 IE 中删除 HSTS 以测试重定向到 https,并且对于子域是可以的

css - @font-face - 导入 .ttf 和 .svg 后不显示自定义字体

less - 我们如何在 Less 中使用 @font-face

CSS 颜色悬停错误

javascript - 如何通过它的索引来抵消一个 DIV

html - CSS中的垂直对齐菜单

html - 在自定义单选按钮上对齐元素中心

css - Bootstrap glyphicon 出现但 IE11 抛出 CSS3111 错误

css - IE9, IE10 双浸CSS opacity/filter