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

QuillJS 2.0自定义数值字号控件失效求助:默认字号可正常使用

QuillJS 2 自定义数值字号失效解决方案

问题原因

QuillJS 2 默认使用基于类名的 Size 属性器(attributors/class/size),仅支持预设关键字(normal/large/huge),通过添加 ql-size-* 类实现字号控制。而你需要的数值字号(如 10px/2pt)需要使用基于行内样式的属性器(attributors/style/size),直接设置元素的 font-size 样式,才能被正确识别并写入 Delta。

解决步骤

1. 替换默认的 Size 属性器

在 Quill 初始化前,导入并注册样式版的 Size 属性器,覆盖默认的类名版本:

// 务必在Quill实例化前执行
const Size = Quill.import('attributors/style/size');
// 配置允许的字号列表,包含自定义数值和预设关键字
Size.whitelist = ['2pt', '3pt', '4pt', '10px', '12px', '14px', 'large', 'huge'];
// 强制覆盖注册
Quill.register('attributors/style/size', Size, true);

2. 修正工具栏选项(移除重复项)

你的 HTML 中有重复的 4pt 选项,先修正避免逻辑混淆:

<select class="ql-size">
  <option value="2pt">2 pt</option>
  <option value="3pt">3 pt</option>
  <option value="4pt">4 pt</option>
  <option value="10px">10px</option>
  <option value="12px">12px</option>
  <option value="14px">14px</option>
  <option value="large">large</option>
  <option value="huge">huge</option>
</select>

3. 自定义工具栏 Handler(可选,默认处理失效时用)

如果上述步骤后数值字号仍不生效,说明默认工具栏逻辑未适配数值格式,需手动添加 Handler:

const quill = new Quill('#editor', {
  modules: {
    toolbar: {
      container: '#toolbar', // 替换为你的工具栏容器选择器
      handlers: {
        size: function(value) {
          value ? this.quill.format('size', value) : this.quill.format('size', false);
        }
      }
    }
  },
  theme: 'snow'
});

验证效果

设置数值字号后,查看编辑器内的文本元素,应带有 style="font-size: 12px;" 这类行内样式;同时导出 Delta 时,会包含 { size: '12px' } 的格式字段。

内容的提问来源于stack exchange,提问作者JGRojo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 23:53:14