我有一个simple svg (drawn by me in illustrator) ,我正在尝试将其转换为网络字体(与其他 svg 一起)。当我在编辑器中打开 svg 时,我可以正确地看到它(黑色棋子与白色棋子握手)。如果我将其转换为 png,同样的方法。
但在我将其转换为网络字体后 grunt webfont
webfont: {
icons: {
src : 'path/svg/*.svg',
dest : 'path/fonts',
destCss : 'path/css',
options : {
autoHint: false,
font : 'icons',
hashes : false
}
}
}
但是在网络字体中它看起来真的很奇怪(除了轮廓之外一切都是透明的)
这是一个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/