如何用 Font Awesome 图标替换默认 Quill.js dropdown.svg?

How to replace default Quill.js dropdown.svg with Font Awesome icon?

背景

我们目前正在使用 vue-quill-editor vue-quill-editor 将文本编辑器集成到 Vue.js 应用中。

由于我们在应用程序中使用 Font Awesome,我已将每个默认工具栏图标替换为 Font Awesome 等效图标。

main.js

import VueQuillEditor from 'vue-quill-editor';
import Quill from 'quill';

import 'quill/dist/quill.core.css';
import 'quill/dist/quill.snow.css';
import '@/assets/scss/main.scss';

const icons = Quill.import('ui/icons');
icons['bold'] = '<i class="fa fa-bold" aria-hidden="true"></i>';
icons['italic'] = '<i class="fa fa-italic" aria-hidden="true"></i>';

唯一无法以这种方式更改的图标是 picker/dropdown 图标,因为它不在 icons.js.

问题

将默认 picker/dropdown 图标替换为等效的 Font Awesome 图标(例如 <i class="fa fa-chevron-down" aria-hidden="true"></i>)的最佳方法是什么?

谢谢!

您不能直接更改 drop-down,但是您可以添加自定义 select 选项并在其上应用 style

Codepen - https://codepen.io/Pratik__007/pen/QWbyWoE

感谢帕特尔提供上述解决方案。

碰巧,我想出了一个更简单的解决方案,不需要创建自定义 select 选项。

我刚刚删除了默认的 svg 并使用 :after 添加了新图标:

.ql-picker-label {
  svg {
    width: 0px !important;
  }
}

.ql-header,
.ql-size {
  .ql-picker-label:after {
    color: $black !important;
    content: '\f078';
    font-family: 'FontAwesome';
    position: absolute;
    top: 1px !important;
    right: 0;
  }
}

它似乎工作得很好并且当然适用于所有这些元素。