自定义字体下*符号显示异常,如何通过CSS修正?
解决自定义字体下星号显示异常的问题
方法1:给星号单独指定系统安全字体
由于你的自定义字体AlJazeera对标准星号(U+002A)的渲染存在问题,直接给星号元素强制使用系统默认字体即可规避:
.asteriskField { display: inline; /* 取消之前的隐藏设置 */ font-family: sans-serif, system-ui; /* 优先用系统无衬线字体 */ color: #dc3545; /* 可选:设置红色让必填标记更醒目 */ margin-left: 0.25em; }
方法2:替换为其他Unicode星号字符
如果不想切换字体,可以尝试使用其他Unicode星号变体,这些变体在目标字体中可能显示正常:
- 修改HTML代码,直接替换星号为Unicode实体:
<span class="asteriskField">∗</span> <!-- 星号运算符,替代标准* -->
- 或者用CSS
content生成(需调整元素结构为伪元素):
/* 先移除HTML中的<span>,给label加required类 */ label.required:after { content: "\2217"; color: #dc3545; margin-left: 0.25em; /* 如果这个字符在自定义字体中显示正常,可保留font-family: inherit */ }
方法3:检查字体文件本身
有可能是Al-Jazeera-Arabic-Regular.ttf字体本身将标准星号(U+002A)设计成了异常样式,或者字体文件缺失该字符。你可以用字体编辑工具(如FontForge)打开字体文件,查看U+002A字符的字形:
- 如果是字体设计问题,更换为该字体的其他版本;
- 如果是字符缺失,系统会自动 fallback 到其他字体,此时用方法1强制指定字体更可靠。
内容的提问来源于stack exchange,提问作者Israa Salameh
相关产品推荐
相关产品推荐

