Vue使用QuillEditor富文本编辑器问题记录
1.内容绑定的问题
绑定内容要使用 v-model:content="xxx" 的形式。

2.设置字体字号
字体以及字号大小的设置需要先注册。
<script>
import { QuillEditor,Quill } from '@vueup/vue-quill'
import '@vueup/vue-quill/dist/vue-quill.snow.css';
// 设置字体大小
const fontSize = Quill.import('attributors/style/size') // 引入这个后会把样式写在style上
fontSize.whitelist = [false,'12px', '14px', '16px', '18px', '20px', '24px', '28px', '32px']
Quill.register(fontSize, true)
// 自定义字体类型
const fonts = [false, 'SimSun', 'SimHei', 'Microsoft-YaHei', 'KaiTi', 'FangSong', 'Arial', 'Times-New-Roman', 'sans-serif','宋体', '黑体'
]
const Font = Quill.import('attributors/style/font')
Font.whitelist = fonts
Quill.register(Font, true);/ 工具栏
const toolbarOptions = [['bold', 'italic', 'underline', 'strike'], // 加粗 斜体 下划线 删除线 -----['bold', 'italic', 'underline', 'strike']// [{ align: [] }], // 对齐方式----- 手动展开[{ align: [] }][{ align: '' }, { align: 'center' }, { align: 'right' }], // 对齐方式----- 默认展开[{ list: 'ordered' }, { list: 'bullet' }], // 有序、无序列表-----[{ list: 'ordered' }, { list: 'bullet' }][{ indent: '-1' }, { indent: '+1' }], // 缩进-----[{ indent: '-1' }, { indent: '+1' }][{ size: fontSize.whitelist}], // 字体大小-----[{ size: ['small', false, 'large', 'huge'] }] //fontSizeStyle.whitelist ['small', false, 'large', 'huge'][{ font: Font.whitelist }], // 字体种类-----[{ font: [] }][{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题[{ direction: 'ltl' }, { direction: 'rtl' }], // 文本方向-----[{'direction': 'ltl'}] [{'direction': 'rtl'}][{ script: 'sub' }, { script: 'super' }], // 上标/下标-----[{ script: 'sub' }, { script: 'super' }][{ color: [] }, { background: [] }, 'blockquote', 'clean'], // 字体颜色、字体背景颜色-----[{ color: [] }, { background: [] }]// ['blockquote'], // 引用 代码块-----['blockquote', 'code-block']// ['clean'], // 清除文本格式-----['clean']// ['link', 'image', 'video'] // 链接、图片、视频-----['link', 'image', 'video']
]
工具栏的配置
data(){return {value: '',editorOption: {placeholder: "请输入文章内容",modules: {toolbar: toolbarOptions//container: toolbarOptions,}},}},
3.工具栏中字体字号下拉选显示异常。
这块需要设置style样式。
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="12px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="12px"]::before {content: '12px';}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="14px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="14px"]::before {content: "14px";}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="16px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="16px"]::before {content: "16px";}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="18px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="18px"]::before {content: "18px";}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="20px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="20px"]::before {content: "20px";}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="32px"]::before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value="32px"]::before {content: "32px";}.ql-snow .ql-picker.ql-size .ql-picker-label::before,.ql-snow .ql-picker.ql-size .ql-picker-item::before {content: "字号";}.ql-snow .ql-picker.ql-header .ql-picker-label::before,.ql-snow .ql-picker.ql-header .ql-picker-item::before {content: "正文" !important;
}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {content: "标题1" !important;
}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {content: "标题2" !important;
}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {content: "标题3" !important;
}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {content: "标题4" !important;
}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {content: "标题5" !important;}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {content: "标题6" !important;
}
.ql-snow .ql-picker.ql-font .ql-picker-label::before,.ql-snow .ql-picker.ql-font .ql-picker-item::before {content: "字体" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="Arial"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="Arial"]::before {content: "Arial" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="SimSun"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="SimSun"]::before {content: "SimSun" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="SimHei"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="SimHei"]::before {content: "SimHei" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="Microsoft-YaHei"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="Microsoft-YaHei"]::before {content: "微软雅黑" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="Arial"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="Arial"]::before {content: "Arial" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="Times-New-Roman"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="Times-New-Roman"]::before {content: "罗马" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="KaiTi"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="KaiTi"]::before {content: "楷体" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="sans-serif"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="sans-serif"]::before {content: "sans-serif" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="宋体"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="宋体"]::before {content: "宋体" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="黑体"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="黑体"]::before {content: "黑体" !important;
}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="FangSong"]::before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value="FangSong"]::before {content: "仿宋" !important;
}
设置完样式后,字体和字号的下拉选正常显示。


相关文章:
Vue使用QuillEditor富文本编辑器问题记录
1.内容绑定的问题 绑定内容要使用 v-model:content"xxx" 的形式。 2.设置字体字号 字体以及字号大小的设置需要先注册。 <script> import { QuillEditor,Quill } from vueup/vue-quill import vueup/vue-quill/dist/vue-quill.snow.css; // 设置字体大小 c…...
spring AOP学习
概念 面向切面编程横向扩展动态代理 相关术语 动态代理 spring在运行期,生成动态代理对象,不需要特殊的编译器 Spring AOP的底层就是通过JDK动态代理或者CGLIb动态代理技术为目标Bean执行横向织入 目标对象实现了接口,spring使用JDK的ja…...
16.M端事件和JS插件
16.1移动端 移动端也有自己独特的地方 ●触屏事件touch (也称触摸事件),Android 和I0S都有。 ●touch对象代表一个触摸点。触摸点可能是一根手指,也可能是一根触摸笔。触屏事件可响应用户手指(或触控笔)对屏幕或者触控板操作。 ●常见的触屏事件如下: …...
Zebec APP:构建全面、广泛的流支付应用体系
目前,流支付协议 Zebec Protocol 基本明确了生态的整体轮廓,它包括由其社区推动的模块化 Layer3 构架的公链 Nautilus Chain、流支付应用 Zebec APP 以及 流支付薪酬工具 Zebec payroll 。其中,Zebec APP 是原有 Zebec Protocol 的主要部分&a…...
Spark 3.1.1 遇到的 from_json regexp_replace组合表达式慢问题的解决
背景 目前公司在从spark 2.4.x升级到3.1.1的时候,遇到了一类SQL极慢的情况,该SQL的如下(只列举了关键的): select device_personas.* from(selectdevice_id, ads_id, from_json(regexp_replace(device_personas, (?<(\\{|,))"devic…...
Docker 容器常用的命令和操作
1.容器操作 - 运行容器: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] 示例: docker run -it --rm ubuntu /bin/bash - 查看正在运行的容器: docker ps [OPTIONS] 示例: docker ps -a - 停止容器: docker stop CONTAINER [CONTAINER...] 示…...
iTOP-RK3568开发板Windows 安装 RKTool 驱动
在烧写镜像之前首先需要安装 RKTool 驱动。 RKTool 驱动在网盘资料“iTOP-3568 开发板\01_【iTOP-RK3568 开发板】基础资料 \02_iTOP-RK3568 开发板烧写工具及驱动”路径下。 驱动如下图所示: 解压缩后,进入文件夹,如下图所示:…...
nginx rtmp http_flv直播推流
安装配置nginx yum install epel-release -y sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm yum install ffmpeg ffmpeg-devel -y yum install gcc -y yum install pcre pcre-devel -y yum install openssl open…...
Day50 算法记录| 动态规划 17(子序列)
这里写目录标题 647. 回文子串516.最长回文子序列总结 647. 回文子串 1.动态规划和2.中心扩展 这个视频是基于上面的视频的代码 方法1:动态规划 布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如…...
RabbitMQ:概念和安装,简单模式,工作,发布确认,交换机,死信队列,延迟队列,发布确认高级,其它知识,集群
1. 消息队列 1.0 课程介绍 1.1.MQ 的相关概念 1.1.1.什么是MQ MQ(message queue:消息队列),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是message 而已,还是一种跨进程的通信机制…...
小研究 - 基于解析树的 Java Web 灰盒模糊测试(二)
由于 Java Web 应用业务场景复杂, 且对输入数据的结构有效性要求较高, 现有的测试方法和工具在测试Java Web 时存在测试用例的有效率较低的问题. 为了解决上述问题, 本文提出了基于解析树的 Java Web 应用灰盒模糊测试方法. 首先为 Java Web 应用程序的输入数据包进行语法建模创…...
对于现有的分布式id发号器的思考 id生成器 雪花算法 uuid
在工作过程中接触了很多id生成策略,但是有一些问题 雪花id 强依赖时钟,对于时钟回拨无法很好解决 tinyid 滴滴开源,依赖mysql数据库,自增,无业务属性 uuid 生成是一个字符串没有顺序,数据库索引组织数据…...
jmeter中json提取器,获取多个值,并通过beanshell组成数组
jmeter中json提取器介绍 特别说明:**Compute concatenation var(suffix_ALL)😗*如果找到许多结果,则插件将使用’ , 分隔符将它们连接起来,并将其存储在名为 _ALL的var中 json提取器调试 在查看结果树中选择JSON Pat…...
通过nvm工具快捷切换node.js版本、以及nvm的安装
使用nvm可以实现多个Node.js版本之间切换 步骤目录: 先卸载掉本系统中原有的node版本 去github上下载nvm安装包 安装node 常用的一些nvm命令 1、先卸载掉本系统中原有的node版本 2、去github上下载nvm安装包 https://github.com/coreybutler/nvm-windows/re…...
企业如何搭建矩阵内容,才能真正实现目的?
当下,新媒体矩阵营销已成为众多企业的营销选择之一,各企业可以通过新媒体矩阵实现扩大品牌声量、维持用户关系、提高销售业绩等不同的目的。 而不同目的的矩阵,它的内容运营模式会稍有差别,评价体系也会大不相同。 企业在运营某类…...
Arduino驱动MQ5模拟煤气气体传感器(气体传感器篇)
目录 1、传感器特性 2、硬件原理图 3、驱动程序 MQ5气体传感器,可以很灵敏的检测到空气中的液化气、天然气、煤气等气体,与Arduino结合使用,可以制作火灾液化气、天然气、煤气泄露报警等相关的作品。 1、传感器特性 MQ5用于消费和工业行业中气体泄漏检测设备,该传感器适…...
Mongodb安装(Centos7)
1. 下载 MongoDB: The Developer Data Platform | MongoDB 2. 安装 上传至服务器 解压 tar -zxvf mongodb-linux-x86_64-rhel70-5.0.19.tgz 移动 mv mongodb-linux-x86_64-rhel70-5.0.19 /usr/local/mongodb 3. 配置 vim /etc/profile # set mongodb configuration expor…...
Python 批量处理JSON文件,替换某个值
Python 批量处理JSON文件,替换某个值 直接上代码,替换key TranCode的值 New 为 Update。输出 cancel忽略 import json import os import iopath D:\\Asics\\850\\202307 # old path2 D:\\test2 # new dirs os.listdir(path) num_flag 0 for file…...
凯迪正大—SF6泄漏报警装置的主要特点
SF6泄漏报警系统主要特点 ① 系统采用声速原理,可定量、实时在线测量SF6泄漏气体含量,克服了传统测量方法如负电晕放电法和卤素传感器法只能定性判别是否越限的缺陷,能够准确得到气体中SF6含量。 ② 系统采用双差分处理方法,有效…...
适配器模式与装饰器模式对比分析:优雅解决软件设计中的复杂性
适配器模式与装饰器模式对比分析:优雅解决软件设计中的复杂性 在软件设计中,我们常常面临着需要将不同接口或类协调工作的情况,同时还要满足灵活性和可扩展性的需求。为了应对这些挑战,适配器模式和装饰器模式应运而生,…...
大模型全景图-GPT到多模态演进路线
大模型全景图:从 GPT 到多模态,我是怎么被一路"卷"过来的一张图理清大模型演进路线,不再被各种名词绕晕从一个场景说起 前段时间有个朋友问我:“现在大模型这么多,GPT、Claude、Gemini、文心、通义ÿ…...
Windows 系统 Allure 环境变量(PATH)配置完整教程
🔑 前置准备 先确认你已经下载并解压了 Allure 工具,找到它的 bin 目录路径(比如 D:\tools\allure-2.30.0\bin,路径里绝对不能有中文、空格、特殊符号) 确认 bin 目录里有 allure.bat 和 allure.exe 这两个文件 已经安装好 Java 8+ 环境(java -version 能正常输出版本号…...
JavaWeb技术全景解析:从核心组件到实战架构
1. JavaWeb技术全景概览 当你第一次接触JavaWeb开发时,可能会被各种术语和概念搞得晕头转向。别担心,这就像学做菜一样,刚开始分不清酱油和醋很正常。JavaWeb本质上就是用Java技术来开发网站和Web应用的一套解决方案,它能让你的程…...
多元高斯分布:条件分布的实际应用与推导解析
1. 多元高斯分布基础回顾 第一次接触多元高斯分布时,我被它优雅的数学形式深深吸引。这种分布在自然界中随处可见,比如一群人的身高体重数据、股票市场的收益率波动,甚至是天气预报中的温度湿度关系。多元高斯分布就像一位全能选手࿰…...
TP4328锂电池电源管理芯片
简介 TP4328 是一款集成锂电池充电管理,LED 指示功能,升压转换器的移动电源管理芯片,外围 只需极少的元件,就可以组成功能强大的移动电源方案。 TP4328 内部集成了 0.8A 的线性充电模式,支持对 0V 电池充电;…...
2026年04月10日热门Model/github项目
总结 2026年4月10日 新上榜的 6个GitHub项目 和 5个HuggingFace模型,反映了当前AI领域的几个核心趋势: 关键趋势: AI编程工具链成熟化:从代码生成(Superpowers、Archon)到知识管理(Claudian&…...
ESP32-C3 FN4P5N模块实战:如何用PlatformIO一键搞定烧录与调试(附配置模板)
ESP32-C3 FN4P5N模块实战:PlatformIO高效开发全攻略 第一次拿到ESP32-C3 FN4P5N模块时,我被它仅有指甲盖大小的体积震惊了——这个集成了4MB闪存和512KB PSRAM的物联网芯片,竟然能通过USB直接完成烧录和调试。作为常年奔波在各种嵌入式项目间…...
2025届学术党必备的十大降重复率方案实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 为切实有效降低文本的AIGC率,特提出如下供参考的策略:首先࿰…...
新手必看:SiameseAOE中文观点抽取,三步搞定评论分析
新手必看:SiameseAOE中文观点抽取,三步搞定评论分析 1. 引言:为什么你需要一个“评论分析助手”? 想象一下,你刚上架了一款新产品,后台涌入了成百上千条用户评论。你迫切想知道用户对产品的真实看法&…...
Docker数据持久化:Volume完全指南,从入门到生产环境选型
你有没有遇到过这种情况:数据库跑在容器里,存了一堆数据,结果容器一删,数据全没了。这是因为容器的文件系统是临时的。容器没了,里面的数据也就没了。Docker Volume(数据卷)就是来解决这个问题的…...
