【发布时间】:2014-02-01 23:16:37
【问题描述】:
如何让 data uris 中定义的字体出现在 Internet Explorer 8 中?
这是背景:我在一个 Web 应用程序中使用 tinyMCE HTML 编辑器,有几个组织正在使用它,其中一些组织使用已设置为不允许下载字体的 IE。 tinyMCE中的图标是作为字体实现的,所以不能下载字体的人是看不到图标的。我正在尝试通过使用 skin.min.css 中的数据 uri 方案来解决这个问题,所以它说的地方
src:url('fonts/icomoon.eot')
我已经改成说
src:url("data:application/vnd.ms-fontobject;base64,TCAAAK...DOJntO")
这在 IE 9 中有效,但在 IE 8 中无效。根据this wiki page,如果 IE8 中的数据 URI 小于 32KB 并且出现在 CSS 中预期的 URL 位置,则应允许它们在 IE8 中使用。字体本身是 9KB。
更新:
我后来发现数据 uris 不是足以解决 IE 被设置为即使在版本 9 中也不允许字体下载的问题。通过该设置,不使用网络字体即使它们嵌入在样式表中。从安全的角度来看,这确实是有道理的,因为恶意代码可以很容易地驻留在嵌入式 base64 二进制文件中,而不是单独的二进制文件中。否则,我的想法是由于一厢情愿、未能清除缓存以及我的开发人员机器中的 IE 安全设置也被锁定的事实的混合。因此,我将编辑样式表以改用图像。
【问题讨论】:
-
你有什么问题?
-
如何让数据 uri 中定义的字体出现在 Internet Explorer 8 中?
标签: css fonts internet-explorer-8 data-uri