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

标签 css svg gruntjs webfonts adobe-illustrator

我有一个simple svg (drawn by me in illustrator) ,我正在尝试将其转换为网络字体(与其他 svg 一起)。当我在编辑器中打开 svg 时,我可以正确地看到它(黑色棋子与白色棋子握手)。如果我将其转换为 png,同样的方法。

enter image description here

但在我将其转换为网络字体后 grunt webfont

   webfont: {
        icons: {
            src     : 'path/svg/*.svg',
            dest    : 'path/fonts',
            destCss : 'path/css',
            options : {
                autoHint: false,
                font    : 'icons',
                hashes  : false
            }
        }
    }

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

enter image description here

这是一个example of my 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';
}

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

附注我试图包含所有相关和不相关的详细信息,但如果您需要其他内容(或者我忘记了其他内容),请告诉我。

最佳答案

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

SVG 定义 fill 属性默认为黑色。您的黑色 pawn 没有定义的填充,因此在正确的 SVG 渲染器中渲染时它默认为黑色。

但是我的猜测是,SVG 到 webfont 转换器实用程序不理解该规则,并且仅查看形状本身定义的属性。如果我是对的,明确地将黑色棋子主体形状上的填充设置为黑色可能会解决您的问题。


我还注意到你处理黑色棋子 ARM 的方式有点奇怪。你已经制作了一个零散的形状,并通过绘制一大堆(据我统计有 25 个)粗短笔画来填充它。字体渲染器期望使用闭合填充形状来定义字形。不这样做可能会导致问题。理想情况下, ARM 应该是单一填充形状。另一方面,它可能工作得很好。

关于css - 从 svg 生成的 Webfont 看起来不一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25831523/

相关文章:

html - 将 SVG 高度和宽度设置为其内部 <text> 节点的高度和宽度

css - 在电脑任意位置执行less编译器

html - 带有 <use> 的 SVG 图标 :hover not working in Chrome with external loading

node.js - 分离的子进程在 Node.js 中的脚本退出时退出

javascript - Grunt 从 typescript 源生成空文件

angularjs - 为 Webpack 4 加载 AngularJS 模板的正确方法?

html - Canvas 和 float

css - 为什么 Isotope 不使用 3d 变换来提高性能?

php - PHP 中的图表库输出到 SVG 或 Canvas?

javascript - 将工具提示添加到使用 svg 路径生成的条形图