css - 如何在 Chrome 打包应用程序中使用自定义/外部字体图标

标签 css icons dart angular-dart google-chrome-app

我有一个用 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/

相关文章:

php - Codeigniter + CSS 不能正常工作,可能是 baseurl

css - 防止在悬停在表格单元格中时轻推相邻的 fontawesome/bootstrap 图标

html - 水平居中仅包含其内容宽度的元素列表

android - 应用程序图标在 Xamarin 表单中没有变化

css - 边界半径意外地不均匀

flutter - 在Windows 10上安装后Flutter不起作用

dart - 如何在抽象类中声明工厂构造函数?

crud - Dart 可以用于基本的 CRUD Web 应用程序吗?

javascript - 隐藏所有不具有与所选元素匹配的类的元素

html - CSS 文件仅部分适用于 Google App Engine