如何更改 Bootstrap 5 上的默认手风琴 svg 图标

Ger*_*era 1 css svg twitter-bootstrap bootstrap-5

我想更改手风琴的默认引导图标

我想使用<i class="bi bi-plus-circle"></i><i class="bi bi-dash-circle"></i> 引导图标,而不是默认的箭头图标

当手风琴折叠时一个图标,当它未折叠时另一个图标。

期望的结果:

期望的结果

当前结果:

当前结果

据我所知,默认的箭头图标来自这里(被截断):

.accordion-button::after {
    background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e);

}
Run Code Online (Sandbox Code Playgroud)

它基本上被设置为背景图像。

当用户切换时,背景图像旋转 180 度:

.accordion-button:not(.collapsed)::after {
    background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e);
    transform: rotate(
-180deg);
}
Run Code Online (Sandbox Code Playgroud)

我想到的第一件事是将两个 svg 替换为所需的引导图标 svg 并删除旋转。

所以我尝试用 bootstrap icon svg 替换当前的 SVG:

.accordion-button::after {
    order: -1;
    margin-left: 0;
    margin-right:0.5em;
    background-image: url(data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529' fill-rule='evenodd' d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z' d='M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z'/%3e%3c/svg%3e);
    background-color: white;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是它没有起作用。我把 svg 代码放错了吗?有更好的方法来实现这一目标吗?

现场 JS 小提琴

(随意编辑代码并尝试任何引导程序图标的 svg 代码)

Ger*_*era 5

我找到了一个解决方案,基本上我们需要对这些 bootstrap 图标 svg 进行编码,以便将其用作 css 背景图像。

这是我在网上找到的解决方案。

现在,使用以下代码:

.accordion-button::after {
    order: -1;
    margin-left: 0;
    margin-right:0.5em;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' class='bi bi-plus-circle' viewBox='0 0 16 16'%3E%3Cpath d='M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z'/%3E%3Cpath d='M8 4a.5.5 0 0 1 .5.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3A.5.5 0 0 1 8 4z'/%3E%3C/svg%3E");
    background-color: white;
}
Run Code Online (Sandbox Code Playgroud)

有用!