我有用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 Packaged应用程序使用了自定义或外部图标/字体。无论如何,请让我知道是否有解决方法。
经过一番尝试之后,我发现这里的问题不是将文件嵌入到组件中,而是实际上使font-face工作在shadowDOM内部似乎没有发生,一旦我为组件禁用了shadowDOM,它就可以使用全局样式和图标可以通过base64编码正常工作,但是禁用shadowDOM无疑会增加我需要重构的整个组件页面设计。我仍然认为应该有一种在shadowDOM中使用字体的方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句