如何在网页中以普通文字形式展示自创非Unicode字符
实现方案:自定义Web字体绑定Unicode私用区码位
这个方案可以完全规避图片方案的所有问题,自定义字符的渲染行为和系统原生文字完全一致,支持调整样式、绑定交互事件,完全满足你的需求,具体实现步骤如下:
1. 矢量素材转自定义字体
你手上的ESP格式是矢量格式,先将单个字符导出为SVG格式文件,再通过字体编辑工具将该SVG字符绑定到Unicode私用区(PUA)的任意空闲码位即可,比如选择U+E000(私用区起始码位,无全局标准含义,不会和公开字符冲突)。
生成.ttf/.otf源字体文件后,再转成网页优先使用的woff2格式,以及兼容旧浏览器的woff格式,就得到了可用的Web字体包。
2. 网页嵌入自定义字体
在CSS中通过@font-face规则引入你生成的自定义字体,示例代码如下:
@font-face { font-family: 'SelfCreatedGlyph'; src: url('你的字体文件路径.woff2') format('woff2'), url('你的字体文件路径.woff') format('woff'); font-weight: normal; font-style: normal; /* 只对绑定的私用区码位生效,不会影响页面其他文字的渲染 */ unicode-range: U+E000; }
3. 页面调用展示字符
有两种常用调用方式,都和普通文字的使用逻辑完全一致:
- 直接使用字符实体调用:页面中写入
,给对应元素设置font-family: 'SelfCreatedGlyph', 兜底字体;即可渲染出自定义字符 - 封装为类名全局复用:通过CSS伪元素注入字符,方便统一维护
.self-created-glyph::before { font-family: 'SelfCreatedGlyph'; content: '\E000'; }
页面中只要添加<span class="self-created-glyph"></span>即可展示该字符。
额外说明
这个自定义字符可以正常设置字号、颜色、描边等样式,也可以绑定点击、hover等任意JS交互事件,完全支持你说的其他网站功能需求。如果需要支持用户输入该字符,额外做一层占位符映射即可,比如用户输入指定的特殊字符串时自动替换为该私用区字符。
内容的提问来源于stack exchange,提问作者mmmmmmmmmmmmm
相关产品推荐
相关产品推荐

