2016-07-27 666 views
2

如何使用QuillJS将自定义字体大小添加到工具栏?我已经试过两种方法:如何将自定义字体大小添加到QuillJS编辑器

// Initiate the editor 
     let toolbarOptions = [ 
      ['bold', 'italic', 'underline', 'strike'], 
      [{ 'align': [] }], 
      [{ 'size': ['10px', '20px', '80px'] }], 
      [{ 'color': ['#FFF'] }] 
     ]; 
     this.editor = new Quill('#executive-control-editor', { 
      modules: { 
       toolbar: toolbarOptions 
      }, 
      theme: 'snow' 
     }); 

<div id="toolbar"> 
     <span class="ql-formats"> 
      <button class="ql-bold"></button> 
      <button class="ql-italic"></button> 
      <button class="ql-underline"></button> 
      <button class="ql-strike"></button> 
     </span> 
     <span class="ql-formats"> 
      <select class="ql-align"></select> 
     </span> 
     <span class="ql-format-group"> 
      <select title="Size" class="ql-size"> 
      <option value="10px">Small</option> 
      <option value="13px">Normal</option> 
      <option value="18px">Large</option> 
      <option value="32px">Huge</option> 
      </select> 
     </span> 
     <span class="ql-formats"> 
      <button class="ql-image"></button> 
     </span> 
    </div> 

但是他们都没有工作。有什么我在这里失踪?我尝试从值中删除“px”;依然没有。

+0

请参阅[此问题](http://stackoverflow.com/questions/33018395/quill-js-font-size-issue)。 – Harangue

+0

@Harangue他有一个不能超过18px的问题。我甚至无法获得任何自定义尺寸。另外,这是Beta1.0之前的版本。他们现在发布了1.0。 – James

回答

1

现在有点奇怪,所以我可以将它添加到Quill配置中。但是现在,它不工作的原因是Quill默认使用类来调整大小,而你想要的是内联样式。你可以改变这个:

var Size = Quill.import('attributors/style/size'); 
Quill.register(Size, true); 

// Rest is the same 
var editor = new Quill('#editor'); 
+0

现在,我正在使用CDN库。这会继续吗? – James

+0

我无法获得此解决方案的工作。它试图导入时不断抛出错误。但是我确实找到了解决办法。我制作了自己的snow css文件副本,并更改​​了文件的字体大小。谢啦! – James

+1

我的错误我更新了正确导入的答案 – jhchen

5

上面接受的答案不适合我,但把我放在正确的轨道上。

这是我必须做的有文本编辑器(在基础值,而不是CSS类的字体大小,还可以设置内嵌样式)设置自定义字体大小:

var Size = Quill.import('attributors/style/size'); 
Size.whitelist = ['14px', '16px', '18px']; 
Quill.register(Size, true); 

var toolbarOptions = [ 
    [{ 'size': ['14px', '16px', '18px'] }], 
]; 

var quill = new Quill("#quillElementSelector", { 
    theme: 'snow', 
    modules: { 
     toolbar: toolbarOptions 
    } 
}); 

我还必须修改我的CSS来覆盖工具栏下拉列表中的标签。请注意,CSS选择器中的“数据值”值必须与上面指定的值匹配。

.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]::before { 
    content: 'Normal'; 
    font-size: 14px !important; 
} 

.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]::before { 
    content: 'Large'; 
    font-size: 16px !important; 
} 

.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]::before { 
    content: 'Huge'; 
    font-size: 18px !important; 
} 
+0

谢谢!这也适用于我。将'Size'更改为任何其他变量名称时失败。奇怪!!! –

+0

这是绝对荒谬的,你必须诉诸覆盖样式通过他们的数据值而不是使用像这样的配置: '{'size':{'Small':'14px','Normal':false,'Large' :'16px','Huge':'18px'}}' 然后再次,这将菜单项的样式留在空中...... – pmarreck

+0

请注意,此外,为了获得菜单标题以反映无论插入点的位置(如股票/默认菜单),我还必须添加这种类型的CSS:'.ql-picker-label [data-value =“10px”] :: before {内容:'小'!重要; }' – pmarreck