Herbert Gao

Never be satisfied

Hi there, I'm herbert gao, a Developer from China. Live in Chengdu, work in IBM.


Welcome to onboard

vue-quill-editor 工具栏自定义字体大小选项

背景


在项目中使用富文本编辑器vue-quill-editor, 但是组件默认可选的文字大小仅有四种并且不是设置的行内样式,在编辑的富文本内容脱离了框架之外则不能正常显示设置的样式。

Baidu了好多之后发现都是通过修改node_modulesquill编译之后的代码,但是这并不是我想要的。在打开正确上网方式网上冲浪之后找到最终的解决方案。

BTW: 墙裂建议大家不要直接修改node_modules中的js、css

修改之后的效果


a表

修改步骤


1.注册并添加白名单

import { Quill } from 'vue-quill-editor'
const sizeStyle = Quill.import('attributors/style/size')
sizeStyle.whitelist = ['12px', '14px', '16px', '18px', '20px', '24px', '30px', '32px', '36px']
Quill.register(sizeStyle, true)

2.修改编辑器选项中的size属性

modules: {
    toolbar: [
    ...
    [{ size: ['12px', '14px', '16px', '18px', '20px', '24px', '30px', '32px', '36px']}], // 字体大小
    ...
    ],
}

3.添加对应的css到项目中的css文件中

.ql-picker-item[data-value='12px']::before, .ql-picker-label[data-value='12px']::before {
  content: '12px' !important;
}

.ql-picker-item[data-value='14px']::before, .ql-picker-label[data-value='14px']::before {
  content: '14px' !important;
}

.ql-picker-item[data-value='16px']::before, .ql-picker-label[data-value='16px']::before {
  content: '16px' !important;
}

.ql-picker-item[data-value='18px']::before, .ql-picker-label[data-value='18px']::before {
  content: '18px' !important;
}

.ql-picker-item[data-value='20px']::before, .ql-picker-label[data-value='20px']::before {
  content: '20px' !important;
}

.ql-picker-item[data-value='24px']::before, .ql-picker-label[data-value='24px']::before {
  content: '24px' !important;
}

.ql-picker-item[data-value='30px']::before, .ql-picker-label[data-value='30px']::before {
  content: '30px' !important;
}

.ql-picker-item[data-value='32px']::before, .ql-picker-label[data-value='32px']::before {
  content: '32px' !important;
}

.ql-picker-item[data-value='36px']::before, .ql-picker-label[data-value='36px']::before {
  content: '36px' !important;
}
最近的文章

Javascript String Xor Operation

JavaScript中字符串是不可变的,因此不能直接进行异或运算。但是,我们可以将字符串转换为数字数组,然后对每个数字进行异或运算,最后将得到的结果转换回字符串。下面是一个使用异或运算加密字符串的示例代码:// 将字符串转换为数字数组function stringToByte(str) { var arr = []; for (var i = 0; i < str.length; i++) { arr.push(str.charCodeAt(i)); } return ...…

javascript继续阅读
更早的文章

SVG图片动态修改颜色

原理页面中使用 <img> 标签显示svg图片时,可以通过css中 transform 和 filter 属性配合容器元素的 overflow:hidden 来显示不同的颜色,具体逻辑是通过控制图片的偏移和投射阴影来实现,具体看代码。代码示例<template> <div class="svg-box" :style="{'width': `${size}px`,'height': `${size}px`}"> <img :sr...…

svg继续阅读