从svg生成的Webfont看起来不一样

Sal*_*ali 2 css svg adobe-illustrator webfonts gruntjs

我有一个简单的svg(由插图画家绘制),我试图转换为webfont(与其他svg一起).当我在编辑器中打开svg时,我看到它是正确的(黑色棋子用白色棋子握手).如果我将它转换为png,也是一样的.

在此输入图像描述

但在我用grunt webfont将其转换为webfont 之后

   webfont: {
        icons: {
            src     : 'path/svg/*.svg',
            dest    : 'path/fonts',
            destCss : 'path/css',
            options : {
                autoHint: false,
                font    : 'icons',
                hashes  : false
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是在webfont中它看起来很奇怪(除了轮廓之外一切都是透明的)

在此输入图像描述

这是我为其生成的webfont和css 的示例:

@font-face {
    font-family: 'icons';
    url('font/icons.woff') format('woff'),
    font-weight: normal;
    font-style: normal;
}
.icon {
    font-family: 'icons';
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
    font-weight: normal;
    font-style: normal;
    speak: none;
    text-decoration: inherit;
    text-transform: none;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.icon_draw:before {
    content: '\f103';
}
Run Code Online (Sandbox Code Playgroud)

我非常相信问题出在我的svg上(所有其他字体看起来都不错:其中一些是我的,有些是从其他来源获取的).但我不知道出了什么问题.

PS我试图包括所有相关和不相关的细节,但如果你需要别的东西(或我忘了别的东西),请告诉我.

Pau*_*eau 6

我不熟悉grunt-webfont,所以以下只是一个有根据的猜测.

SVG定义该fill属性默认为黑色.您的黑色棋子没有定义的填充,因此在适当的SVG渲染器中渲染时它默认为黑色.

然而我的猜测是SVG到webfont转换器实用程序并不理解该规则,只关注在形状本身上定义的属性.如果我是对的,在黑色典当的身体形状上明确地将填充设置为黑色可能会解决您的问题.


我也注意到你做黑色兵的手臂的方式有点奇怪.你做了一个零碎的形状,并通过画了很多(我的数量为25)粗短笔画来填充它.字体渲染器期望使用闭合填充形状定义字形.不这样做可能会导致问题.理想情况下,手臂应该是单个填充形状.另一方面,它可以完美地工作.