【问题标题】:How to use custom/external fonts icon in Chrome Packaged Apps如何在 Chrome 打包应用程序中使用自定义/外部字体图标
【发布时间】:2014-09-04 19:18:29
【问题描述】:

我有用 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 打包应用程序使用自定义或外部图标/字体。请让我知道是否有解决方法。

【问题讨论】:

  • 我现在在应用程序中使用 PNG 图标作为一种解决方法,但如果能够在 chrome 打包的应用程序中使用 .ttf、.woff、.svg、.eot 文件,那就太好了.如果您能够在 angulart-dart chrome 打包应用程序中使用任何形式的解决方案,请发布解决方案。
  • 也许从您实际设置的部分中的“图标”中删除单引号?我知道在普通的 css 文件中,在 @font-face 位中指定了字符串之后,您不会使用引号。
  • 打包应用没有 manifast.json 文档中的 web_accessible_resources :developer.chrome.com/apps/manifest
  • 经过一些尝试,我发现这里的问题不是将文件嵌入到组件中,而是实际上在 shadowDOM 中获得字体工作,这似乎不会发生,一旦我禁用我的组件的 shadowDOM 可以使用全局样式,并且图标在 base64 编码时可以正常工作,但是当然禁用 shadowDOM 会占用我需要重构的整个组件页面设计。我仍然认为应该有一种方法可以在 shadowDOM 中使用 font-face。

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


【解决方案1】:

经过一些尝试,我发现这里的问题不是将文件嵌入到组件中,而是实际上在 shadowDOM 中获得字体工作,这似乎不会发生,一旦我为我的组件禁用 shadowDOM 它可以使用全局样式,并且图标在 base64 编码时可以正常工作,但是当然禁用 shadowDOM 会占用我需要重构的整个组件页面设计。我仍然认为应该有一种方法可以在 shadowDOM 中使用 font-face。

【讨论】:

    【解决方案2】:

    试试 IcoMoon https://icomoon.io/app/ 导入图标后,它将生成嵌入字体的 CSS 文件(默认关闭,更改首选项) 对我来说效果很好

    【讨论】:

    • 经过一些尝试,我发现这里的问题不是将文件嵌入到组件中,而是实际上在 shadowDOM 中获得字体工作,这似乎不会发生,一旦我禁用我的组件的 shadowDOM 可以使用全局样式,并且图标在 base64 编码时可以正常工作,但是当然禁用 shadowDOM 会占用我需要重构的整个组件页面设计。我仍然认为应该有一种方法可以在 shadowDOM 中使用 font-face。
    猜你喜欢
    • 1970-01-01
    • 2014-02-15
    • 2013-05-12
    • 2011-03-31
    • 2015-02-25
    • 1970-01-01
    • 2023-04-03
    • 2013-12-28
    • 1970-01-01
    相关资源
    最近更新 更多