我使用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并将它们嵌入到我的控制器CSS中来避免CSP(内容安全策略)问题但是当我运行应用程序时我看到了在chrome中是默认的方框而不是我引用的图标();控制台或Chrome浏览器上没有错误。我想知道是否有人使用Chrome打包应用程序使用自定义或外部图标/字体。如果有任何解决方法,请告诉我。
答案 0 :(得分:1)
经过一些尝试后,我发现这里的问题不是将文件嵌入到组件中,而是实际上在shadowDOM中获得了font-face工作,这似乎不会发生,一旦我为我的组件禁用了shadowDOM它可以使用全局样式和图标工作正常作为base64编码,但当然禁用shadowDOM批量整个组件页面设计,我需要重构。我仍然认为应该有一种方法在shadowDOM中使用font-face。
答案 1 :(得分:0)
尝试IcoMoon https://icomoon.io/app/ 导入图标后,它将生成嵌入了字体的CSS文件(默认情况下关闭,更改首选项) 为我工作好