【问题标题】:Some Icomoon icons won't display一些Icomoon图标不会显示
【发布时间】:2023-03-22 23:44:01
【问题描述】:

我在应用程序中使用 Icomoon - 我遇到了少量图标无法显示的问题。我已经通过Icomoon App下载了所有图标,这是最新版本-全部450个。

我只尝试了一个没有其他 CSS 的空白页面,但如果是我的应用程序中的某些 CSS 导致它,它们仍然无法工作。

<link rel="stylesheet" type="text/css" href="/css/icons/icomoon/style.css" media="screen" />

<i class="icon-user"></i> User
<i class="icon-bars"></i> Bars
<i class="icon-search"><i> Search

在上面,条形图显示正常,但用户和搜索却不行。

这是我的 style.css 文件(截断):

@font-face
{
    font-family: 'IcoMoon';
    src:url('fonts/icomoon.eot');
    src:url('fonts/icomoon.eot?#iefix') format('embedded-opentype'),
        url('fonts/icomoon.svg#IcoMoon') format('svg'),
        url('fonts/icomoon.woff') format('woff'),
        url('fonts/icomoon.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

[class^="icon-"], 
[class*=" icon-"]
{
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
}

[class^="icon-"]:before, 
[class*=" icon-"]:before
{
    font-family: 'IcoMoon';
    font-weight: normal;
    font-style: normal;
    speak: none;
    -webkit-font-smoothing: antialiased;
}

.icon-users:before {
    content: "\92";
}
.icon-bars:before {
    content: "\b8";
}
.icon-search:before {
    content: "\a0";
}

如果我打开 icomoon.svg(我可以“编辑”的唯一一个),那么 92 和 a0 都在那里:

<glyph unicode="&#x92;" d="M734.994 154.626c-18.952 2.988-19.384 54.654-19.384 54.654s55.688 54.656 67.824 128.152c32.652 0 52.814 78.138 20.164 105.628 1.362 28.94 41.968 227.176-163.598 227.176-205.564 0-164.958-198.236-163.598-227.176-32.654-27.49-12.488-105.628 20.162-105.628 12.134-73.496 67.826-128.152 67.826-128.152s-0.432-51.666-19.384-54.654c-61.048-9.632-289.006-109.316-289.006-218.626h768c0 109.31-227.958 208.994-289.006 218.626zM344.054 137.19c44.094 27.15 97.626 52.308 141.538 67.424-15.752 22.432-33.294 52.936-44.33 89.062-15.406 12.566-27.944 30.532-35.998 52.602-8.066 22.104-11.122 46.852-8.608 69.684 1.804 16.392 6.478 31.666 13.65 45.088-4.35 46.586-7.414 138.034 52.448 204.732 23.214 25.866 52.556 44.46 87.7 55.686-6.274 64.76-39.16 140.77-166.454 140.77-205.564 0-164.958-198.236-163.598-227.176-32.654-27.49-12.488-105.628 20.162-105.628 12.134-73.496 67.826-128.152 67.826-128.152s-0.432-51.666-19.384-54.654c-61.048-9.634-289.006-109.318-289.006-218.628h329.596c4.71 3.074 9.506 6.14 14.458 9.19z" />

<glyph unicode="&#xa0;" d="M992.262 88.604l-242.552 206.294c-25.074 22.566-51.89 32.926-73.552 31.926 57.256 67.068 91.842 154.078 91.842 249.176 0 212.078-171.922 384-384 384-212.076 0-384-171.922-384-384 0-212.078 171.922-384 384-384 95.098 0 182.108 34.586 249.176 91.844-1-21.662 9.36-48.478 31.926-73.552l206.294-242.552c35.322-39.246 93.022-42.554 128.22-7.356s31.892 92.898-7.354 128.22zM384 320c-141.384 0-256 114.616-256 256s114.616 256 256 256 256-114.616 256-256-114.614-256-256-256z" />

此外,在从 icomoon 应用程序创建的演示 html 文件中,从 7f(下载)到 a0(搜索)的所有图标都显示为空白 - 我尝试使用的两个图标都属于此范围。

知道为什么有些会显示而有些不会吗?

【问题讨论】:

    标签: css icons icon-fonts


    【解决方案1】:

    我在 IE11 & edge 中遇到的问题是显示的是大写变体而不是小写图标。这是因为 IE11/edge 在处理 css 应用的字符时会忽略大小写,只在字体文件中搜索第一个“匹配”。

    正如您在这张图片中看到的,小写的“g”映射到一个垃圾箱图标,而大写的“G”映射到一个播放图标。 IE11 & edge 错误地使用了第一个大写变体。

    您可以通过使用 font forge 检查您的字体文件并在图标本身的 css 中明确声明“文本转换:小写/大写”来测试这个可能的原因,看看是否可以解决它。

    为了最终解决这个问题,我从图标字体中删除了所有大写字母,并将所有内容重新映射到other unicode characters,一切都按预期工作。我在这篇文章中找到了我的解决方案:Icon font behaving strangely in IE11

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 是的,我做了很多其他的事情——这很奇怪,因为它是特定的图标而不是浏览器本身。原来这是开发人员需要在应用程序中更新的东西,因为 U+7F 到 U+A0 无法呈现或浏览器忽略它们,他现在已经完成并且已解决
      • 感谢您跟进 + 发布解决方案!
      【解决方案3】:

      我找到了解决方案。我的问题是只有几个图标根本没有显示,但是在打开 zip 中的 html 文件后,我看到那些相同的图标显示正确。所以我看到了 html 和 css,并看到通过文件使用的类来调用图标。第一个出现在 @font-face 调用下面,它基本上设置了字体的样式和系列,字体正确显示所需的一切,所以调用这个类。下一个示例是使用我的类和 icomoon 字体文件。

      @font-face {
           font-family:"icomoon";
           src: url('fonts/icomoon.eot');
      @font-face {
           /*All the urls*/
      }
      
      /*THIS IS THE ONE YOU NEED TO CALL*/
      .icomoon {
           font-family: "icomoon";
           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;
      }
      

      【讨论】:

      • 我也遇到了同样的问题!你到底是怎么给他们打电话的?我试过了: 和 都不管用。
      【解决方案4】:

      当您使用 icomoon 创建新图标时,您会在下载前获得预览。如果图标带有“多色”标签,则不会显示。我在 illustrator 中创建了一些图标并将它们导入到应用程序中。因为我的剪影是白色的,背景是白色的,所以图标有点破损,无法使用。

      不得不使用探路者来修复它们并使其只有一种颜色,而且线条笔画也会杀死你的图标。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-05
        • 2020-10-12
        • 1970-01-01
        • 2022-12-25
        相关资源
        最近更新 更多