我有一个用 AngularDart 编写的 Chrome 打包应用程序,并试图获取一些外部图标以使应用程序看起来更好,但无法在网上找到任何示例。尝试了很多事情以及以下解决方法,但无法正常工作。我正在将 @font-face 添加到我的 css 中,如下所示:
@font-face {
font-family: 'Icons';
src: url(data:font/ttf;charset=utf-8;base64,<ttf file encoded to base64>) format('truetype'),
url(data:font/woff;charset=utf-8;base64,<woff file encoded to base64>) format('woff'),
url(data:font/svg;charset=utf-8;base64,<svg file encoded to base64>) format('svg');
font-weight: normal;
font-style: normal;
}
[class^="icon-"], [class*=" icon-"] {
font-family: 'Icons';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-uniF085:before {
content: "\f085";
}
我试图通过将我的图标文件:.ttf、.woff、.svg、.eot 转换为 base64 并将它们嵌入到我的 Controller CSS 中来避免 CSP(内容安全策略)问题,但是当我运行应用程序时,我看到的都是在 chromium 中是默认的方框,而不是我引用的图标 ();控制台或 Chrome 浏览器上没有错误。我想知道是否有人使用 Chrome 打包应用程序获得自定义或外部图标/字体。无论如何,请让我知道是否有解决方法。
最佳答案
经过一些尝试,我发现这里的问题不是将文件嵌入到组件中,而是实际上让字体在 shadowDOM 中工作,这似乎并没有发生,一旦我为我的组件禁用了 shadowDOM 它可以使用全局样式,图标在 base64 编码下工作正常,但当然禁用 shadowDOM 会增加整个组件页面设计,我需要重构。我仍然认为应该有一种方法可以在 shadowDOM 中使用 font-face。
关于css - 如何在 Chrome 打包应用程序中使用自定义/外部字体图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25673417/