You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ReactQuill 默认字体(sans serif、serif、monospace)修改不生效问题咨询

ReactQuill字体修改无响应问题解决方案

问题原因

  • 你注释了formats属性,Quill的格式白名单未包含font配置,导致字体修改操作被过滤不生效
  • 若未自定义字体配置,font: []的空数组配置仅会加载Quill内置的3种基础字体,且需配套对应CSS样式才能正常渲染

解决步骤

1. 启用格式白名单配置

取消组件中formats属性的注释,声明支持的格式列表:

// 定义formats配置
const formats = [
  'font', 'size', 'bold', 'italic', 'underline', 'strike',
  'list', 'bullet', 'indent', 'align', 'script', 'color',
  'background', 'link', 'image'
]

// 组件引用时开启formats配置
<ReactQuill
  theme="snow"
  value={value}
  onChange={onChange}
  modules={QuillEditorControlled.modules}
  formats={QuillEditorControlled.formats} // 取消该行注释
/>

完成本步操作后,Quill默认的3种字体即可正常切换使用。

2. (可选)配置自定义字体

如果需要使用Quill默认以外的字体,按以下步骤操作:

注册自定义字体到Quill实例

在组件初始化前执行注册逻辑:

import Quill from 'quill';
const FontAttributor = Quill.import('attributors/class/font');
// 替换为你需要的字体标识列表
FontAttributor.whitelist = ['sans-serif', 'serif', 'monospace', 'song', 'yahei'];
Quill.register(FontAttributor, true);

调整toolbar的字体配置

在modules的toolbar配置中填入对应字体标识:

{
  toolbar: [
    [{ font: ['sans-serif', 'serif', 'monospace', 'song', 'yahei'] }],
    // 其余原有配置保持不变
  ]
}

添加配套CSS样式

Quill通过类名匹配字体样式,需要添加对应CSS规则:

/* 下拉选项显示的字体名称 */
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=song]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=song]::before {
  content: "宋体";
  font-family: "SimSun", serif;
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=yahei]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=yahei]::before {
  content: "微软雅黑";
  font-family: "Microsoft YaHei", sans-serif;
}

/* 编辑器内容区字体生效 */
.ql-font-song {
  font-family: "SimSun", serif;
}
.ql-font-yahei {
  font-family: "Microsoft YaHei", sans-serif;
}

内容的提问来源于stack exchange,提问作者IOrch-K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 11:03:01