【问题标题】:SVG icon looks different after being converted to woffSVG 图标转换为 woff 后看起来不同
【发布时间】:2016-01-07 22:13:03
【问题描述】:

我正在使用gulp-iconfont 将一组 svg 图标转换为 woff 字体。

图标转换成字体前的样子如下:

它在 woff 文件中的显示方式:

我的 gulp 任务如下:

gulp.task('icon-font', function() {
  gulp.src([paths.icons + '*.svg'])
    .pipe(iconfont({
      fontName: 'icons',
      formats: ['woff'],
      timestamp: timestamp,
      appendUnicode: true
    }))
    .on('glyphs', function(glyphs, options) {
      gulp.src(paths.templates + '/_icons.scss')
        .pipe(template({ glyphs: glyphs, timestamp: timestamp }))
        .pipe(gulp.dest(paths.styles));
    })
    .pipe(gulp.dest(paths.fonts + 'icons/')
  );
});

我的 Illustrator 导出设置:

SVG 代码:

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
     viewBox="-183 185 32 32" style="enable-background:new -183 185 32 32;" xml:space="preserve">
<g>
    <path d="M-175.6,190.5c-0.3-0.3-0.9-0.3-1.3,0c-4.7,4.7-4.7,12.4,0,17.1c0.2,0.2,0.5,0.5,0.7,0.7c0,0.1-0.1,0.2-0.1,0.3v6.7h-2.9
        c-0.5,0-0.9,0.4-0.9,0.9s0.4,0.9,0.9,0.9h7.6c0.5,0,0.9-0.4,0.9-0.9c0-0.5-0.4-0.9-0.9-0.9h-2.9v-5.7c1.8,1.1,3.9,1.6,6.1,1.6
        c3.2,0,6.3-1.3,8.5-3.5c0.2-0.2,0.3-0.4,0.3-0.6c0-0.2-0.1-0.5-0.3-0.6L-175.6,190.5z M-168.3,209.3c-2.7,0-5.3-1.1-7.3-3
        c-3.8-3.8-4-9.8-0.6-13.9l14.5,14.5C-163.5,208.5-165.9,209.3-168.3,209.3z"/>
    <path d="M-168,192.8c3.6,0,6.6,3,6.6,6.6c0,0.5,0.4,0.9,0.9,0.9c0.5,0,0.9-0.4,0.9-0.9c0-4.6-3.8-8.4-8.4-8.4
        c-0.5,0-0.9,0.4-0.9,0.9C-168.9,192.4-168.5,192.8-168,192.8z"/>
    <path d="M-157.8,189.1c-2.7-2.7-6.2-4.1-10-4.1c-0.5,0-0.9,0.4-0.9,0.9c0,0.5,0.4,0.9,0.9,0.9c3.3,0,6.4,1.3,8.7,3.6
        c2.3,2.3,3.6,5.4,3.6,8.7c0,0.5,0.4,0.9,0.9,0.9c0.5,0,0.9-0.4,0.9-0.9C-153.6,195.3-155.1,191.8-157.8,189.1z"/>
</g>
</svg>

感谢任何想法。

更新:

按照@nfroidure 中的一些建议,我将它们全部设置为 300px x 300px,现在我得到了这个并添加了以下选项 fontHeight: 16normalize: true。正在产生以下内容:

【问题讨论】:

  • 你能发布你的 SVG 吗?
  • 用 SVG 代码更新了描述。
  • 您的 SVG 看起来不错。也许 gulp 对路径的解释方式存在问题。您可能想尝试将此作为错误发布在 gulp 存储库中。或者尝试使用 grunt。
  • 问题与将此 svg 转换为 woff 字体的过程有关。为什么我不应该使用 woff?它在我的目标浏览器中具有出色的支持。

标签: svg icons gulp woff


【解决方案1】:

您的 SVG 似乎太小了。尝试增加它们的大小或使用 fontHeight (> 1000) + normalize 选项来拉伸它们。

【讨论】:

  • 最佳设置/尺寸是什么?
  • 我尝试添加fontHeight: 16normalize: true,但图标看起来仍然很奇怪。我应该更改源 SVG 的大小吗?如果是这样,最好的宽度/高度是多少?
  • 我把它们都做成了 300px x 300px,现在更糟了(见图片编辑)
  • 好的,我确实清除了我的 node-modules 文件夹,进行了全新的 npm 安装,将所有图标的大小调整为 300 x 300,添加了 fontHeight: 16;,现在一切似乎都很好。看起来这可能是多种因素的结合。
  • 这似乎成功了!如果您更新答案以包含此内容,我会将其标记为正确。感谢您的帮助和插件!
猜你喜欢
  • 1970-01-01
  • 2017-08-29
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-05
  • 1970-01-01
  • 2021-03-15
相关资源
最近更新 更多