gpt4 book ai didi

javascript - 使用从 gulp-iconfont 生成的 css,字体符号无法正确显示

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:21 25 4
gpt4 key购买 nike

所以,我正在使用 gulp-iconfont从 svg 图标生成图标字体。我用下一种方式设置了任务:

gulp.task('iconfont', function(){
gulp.src(['src/assets/icons/*.svg'])
.pipe($.iconfont({
fontName: 'material',
normalize: true
}))
.on('codepoints', function(codepoints) {
console.log(codepoints);
gulp.src('src/templates/material.styl')
.pipe($.consolidate('mustache', {
glyphs: codepoints,
fontName: 'material',
fontPath: '../fonts/',
className: 'md'
}))
.pipe(gulp.dest('src/styles/plugins'));
})
.pipe(gulp.dest('build/fonts/'));
});

console.log(codepoints) 给我类似的东西:

[ { name: 'notifications', codepoint: 57345 },
{ name: 'offline', codepoint: 57346 },
{ name: 'online', codepoint: 57347 },
...
]

我在我的 CSS 中使用这个代码点来生成如下内容:

.md-notifications {
content: "\57345";
}

而且它不起作用,有一个空白区域而不是我的图标。但是,如果我使用直接从生成的 svg 字体中获取的代码点,它就可以工作:

.md-notifications {
content: "\E001"
}

我做错了什么?

最佳答案

在 JavaScript 中,当反斜杠后跟数字时,您正在创建一个八进制转义序列。斜线后的数字需要以 8 为基数(八进制)。

代码点 57345 应指定为“\160001”。

您还可以使用“\u”前缀进行十六进制转义序列。所以57345也可以写成“\uE001”。

你声称的第二个是工作“\E001”是不对的。并且不会按照您的想法去做。它应该只生成字符串“E001”。

关于javascript - 使用从 gulp-iconfont 生成的 css,字体符号无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30557122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com