ChatGPT解决这个技术问题 Extra ChatGPT

如何更改 svg 元素的颜色?

我想 use this technique 并更改 SVG 颜色,但到目前为止我还不能这样做。我把它放在 CSS 中,但无论如何我的图像总是黑色的。

我的代码:

.change-my-color { 填充:绿色; }

我不是 svg 专家,但是您是否尝试过将填充更改为背景色?
svg background-color 中的@Megan 使用“fill”属性指定,边框使用“stroke”指定(就像在 Illustrator 中所做的那样)。 w3.org/TR/SVG/propidx.html
HTML 文档中的 CSS 不适用于 中的 SVG 元素
现在这是可能的。这里简单而实用的答案:stackoverflow.com/a/53336754/467240
嗨,您可能应该更改接受的答案(查看投票最多的答案)。

M
Manish Menaria

2020年答案

CSS Filter works on all current browsers

更改任何 SVG 颜色

使用 标签添加 SVG 图像。

<img src="dotted-arrow.svg" class="filter-green"/>

要过滤到特定颜色,请使用以下 Codepen(单击此处打开 codepen)将十六进制颜色代码转换为 CSS 过滤器:

例如,#00EE00 的输出是

filter: invert(42%) sepia(93%) saturate(1352%) hue-rotate(87deg) brightness(119%) contrast(119%);

将 CSS 过滤器添加到此类中。

    .filter-green{
        filter: invert(48%) sepia(79%) saturate(2476%) hue-rotate(86deg) brightness(118%) contrast(119%);
    }

这带有一个常见的警告,即在旧浏览器版本中不受支持:developer.mozilla.org/en-US/docs/Web/CSS/…
如 CodePen 中所述,如果您的 SVG 不是黑色(我的是灰色),将 brightness(0) saturate(100%) 添加到过滤器列表的开头将首先将其变为 100% 黑色,这使得其他过滤器能够将其更改为正确的颜色。
此外,本 StackOverflow question 中的解决方案的许多引人入胜的背景为 CodePen 提供了参考。
我的家伙。支持似乎可以接受 caniuse.com/#feat=css-filters
但是您如何指定特定的颜色?
S
Sushant Pachipulusu

要更改任何 SVG 的颜色,您可以通过在任何文本编辑器中打开 svg 文件来直接更改 svg 代码。代码可能类似于下面的代码

<?xml version="1.0" encoding="utf-8"?>
    <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
    <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
         width="500px" height="500px" viewBox="0 0 500 500" enable-background="new 0 0 500 500" xml:space="preserve">
    <g>
        <path d="M114.26,436.584L99.023,483h301.953l-15.237-46.416H114.26z M161.629,474.404h-49.592l9.594-29.225h69.223
            C181.113,454.921,171.371,464.663,161.629,474.404z"/>
    /*Some more code goes on*/
    </g>
    </svg>

您可以观察到有一些 XML 标签,如路径、圆、多边形等。您可以在样式属性的帮助下添加自己的颜色。看下面的例子

<path fill="#AB7C94" d="M114.26,436.584L99.023,483h301.953l-15.237-46.416H114.26z M161.629,474.404h-49.592l9.594-29.225h69.223
                C181.113,454.921,171.371,464.663,161.629,474.404z"/>

将样式属性添加到所有标签,以便您可以获取所需颜色的 SVG

编辑:根据丹尼尔的评论,我们可以直接使用填充属性而不是样式属性中的填充元素


为什么不直接使用属性 fill 像这样: fill = "#AB7C94" ?不确定为什么需要 style 属性
嗨丹尼尔,是的,它有效。我不知道填充可以用作属性。很抱歉这么久没有注意到你的评论@bg17aw
你们拯救了我的一天
这应该是最好的答案,因为它提供了相同的结果,但代码更少。更少的代码,更好的代码。
如果您不想以编程方式更改 svg 的颜色,这是最好和最简单的解决方案。谢谢!
u
user9342572809

您不能以这种方式更改图像的颜色。如果将 SVG 作为图像加载,则无法在浏览器中使用 CSS 或 Javascript 更改其显示方式。

如果您想更改您的 SVG 图像,您必须使用 <object><iframe> 或使用 <svg> 内联加载它。

如果您想使用页面中的技术,您需要 Modernizr 库,您可以在其中检查 SVG 支持并有条件地显示或不显示后备图像。然后,您可以内联您的 SVG 并应用您需要的样式。

看 :

#time-3-icon { 填充:绿色; } .my-svg-alternate { 显示:无; } .no-svg .my-svg-alternate { 显示:块;宽度:100px;高度:100px;背景图片:网址(image.png); }

您可以内联 SVG,使用类名 (my-svg-alternate) 标记备用图像:

<svg width="96px" height="96px" viewBox="0 0 512 512" enable-background="new 0 0 512 512" xml:space="preserve">
<path id="time-3-icon" .../>
</svg>

<image class="my-svg-alternate" width="96" height="96" src="ppngfallback.png" />

在 CSS 中,使用 Modernizr (CDN: http://ajax.aspnetcdn.com/ajax/modernizr/modernizr-2.7.2.js ) 的 no-svg 类来检查 SVG 支持。如果没有 SVG 支持,SVG 块将被忽略并显示图像,否则图像将从 DOM 树 (display: none) 中删除:

.my-svg-alternate {
  display: none;
}
.no-svg .my-svg-alternate {
  display: block;
  width: 100px;
  height: 100px;
  background-image: url(image.png);
}

然后您可以更改内联元素的颜色:

#time-3-icon {
   fill: green;
}

您不能对托管文档中嵌入的 object SVG 设置样式。
@JavierRey 您可以通过javascript将样式注入到对象标签的内容中。但是你是对的,如果你只是将它添加到托管文档的样式表中,它并不适用。
我正在使用@manish-menaria 的解决方案,它运行良好。
接受的答案应更改为:stackoverflow.com/a/53336754/467240
有一种方法可以做到这一点,只需提供 svg fill="currentColor" 属性,它就会从分配给它的 CSS 颜色(字体颜色)中获取颜色。查看此答案stackoverflow.com/a/65147574/8230784
R
Richard Thiessen

如果要动态更改颜色:

在代码编辑器中打开 SVG 添加或重写每个路径的填充属性为 fill="currentColor" 现在,该 svg 将采用您的字体颜色的颜色,因此您可以执行以下操作:

svg {
    color : "red";
}

这是最真实和最简单的答案。
这就是来自 font-awesome 的图标 (SVG) 的做法。效果很好。
此外,您可能必须将 stroke 属性更改为 stroke="currentColor"
如果将 SVG 保存为文件并以 <img> 标记显示,则它不起作用。
您如何包含 SVG、内联或使用 img 标签?请包括在您的答案中。
s
sunkehappy

只有带有路径信息的 SVG。你不能对图像这样做..作为路径,你可以更改笔触和填充信息,你就完成了。像插画家

所以:通过 CSS 你可以覆盖路径 fill

path { fill: orange; }

但是如果你想要更灵活的方式,因为你想在有一些悬停效果时用文本改变它..使用

path { fill: currentColor; }

身体{背景:#ddd;文本对齐:居中;填充顶部:2em; } .parent { 宽度:320px;高度:50px;显示:块;过渡:全0.3s;光标:指针;填充:12px; box-sizing:边框框; } /*** 孩子想要的颜色 ***/ .parent{ color: #000;背景:#def; } .parent:hover{ 颜色:#fff;背景:#85c1fc; } .parent span{ 字体大小:18px;右边距:8px;字体粗细:粗体;字体系列:'Helvetica';行高:26px;垂直对齐:顶部; } .parent svg{ 最大高度:26px;宽度:自动;显示:内联; } /**** 魔术 *****/ .parent svg path{ fill: currentcolor; }

TEXT WITH SVG


Y
Yonatan Ayalon

添加了一个测试页面 - 通过过滤器设置为 SVG 着色:

例如filter: invert(0.5) sepia(1) saturate(5) hue-rotate(175deg)

Upload & Color your SVG - Jsfiddle

灵感来自:https://blog.union.io/code/2017/08/10/img-svg-fill/


谢谢,你只是把我从自己身上救了出来。 .custom-disabled > svg {filter:invert(0.2) sepia(1) saturte(0) hue-rotate(0);} 完成了我需要禁用图标的工作。
B
Ben Carp

解决方案 1 - 编辑 SVG 以指向 currentColor

<svg>... fill: currentColor stroke: currentColor ...</svg>

然后你可以控制描边的颜色和你的css的填充

svg {
  color: blue; // or any color of your choice.
}

优点和缺点:

简单并使用常规支持的 css。

适用于:

您控制 SVG

SVG 可以内嵌在 HTML 中。

解决方案 2 - css 掩码属性

<i class="icon"></i>
.icon {
  -webkit-mask-size: cover;
  mask-size: cover;
  -webkit-mask-image: url(https://url.of.svg/....svg);
  mask-image: url(https://url.of.svg/....svg);
  background-color: blue; // or any color of your choice.
  width: 20px; 
  height: 20px; 
}
}

优点和缺点

比较容易使用

浏览器对 mask css 属性的支持是部分的。

适用于:

SVG 是外部的,通过 URL 包含在内

旨在用于现代已知浏览器。

解决方案 3 - css 过滤器属性 - 静态颜色

如果预先知道颜色,您可以使用 https://codepen.io/sosuke/pen/Pjoqqp 找到将 SVG 更改为所需颜色所需的过滤器。例如,要将 svg 转换为 #00f

<img src="https://url.of.svg/....svg" class="icon">
.icon {
    filter: invert(8%) sepia(100%) saturate(6481%) hue-rotate(246deg) brightness(102%) contrast(143%); 
}

如果您的原始颜色不是黑色,则在过滤器列表前面加上 brightness(0) saturate(100%) 以首先将其转换为黑色。

优点和缺点:

结果与所需颜色之间可能存在微小但不显着的差异。

适用于:

需要的颜色是预先知道的。

外部图像


关于解决方案 3 的优缺点;值得补充的是,对复杂的 SVG 图像使用多个过滤器会对性能产生巨大的负面影响。如果有的话,应该谨慎使用。
v
vsync

带有背景颜色的框元素上的 SVG 掩码将导致:

身体{溢出:隐藏; } .icon { --size: 70px;显示:内联块;宽度:var(--size);高度:var(--size);过渡:0.12 秒; -webkit-mask-size:覆盖;面具尺寸:覆盖; } .icon-bike { 背景:黑色;动画:4s帧无限线性; -webkit-mask-image: url(https://image.flaticon.com/icons/svg/89/89139.svg);掩码图像:网址(https://image.flaticon.com/icons/svg/89/89139.svg); } @keyframes 帧 { 0% { 变换:translatex(100vw) } 25% { 背景:红色; } 75% { 背景:石灰; } 100% { transform:translatex(-100%) } }

注意 - Internet Explorer 浏览器不支持 SVG 蒙版


非常感谢,@vsync 这只是我需要的最好的破解。
F
Felix Hagspiel

最简单的方法是使用 https://icomoon.io/app/#/select 等服务从 SVG 中创建字体。上传您的 SVG,单击“生成字体”,将字体文件和 css 包含到您的身边,然后像任何其他文本一样使用和设置样式。我总是这样使用它,因为它使样式更容易。

编辑: 正如@CodeMouse92 评论的article 中所述,图标字体会混淆屏幕阅读器(并且可能对 SEO 不利)。所以宁愿坚持使用 SVG。


它还弄乱了屏幕阅读器。请参阅"Death to Icon Fonts" by Seren Davies
w
warfish

您可以尝试使用此 css 过滤器对其进行着色:

.colorize-pink {
  filter: brightness(0.5) sepia(1) hue-rotate(-70deg) saturate(5);
}

.colorize-navy {
  filter: brightness(0.2) sepia(1) hue-rotate(180deg) saturate(5);
}

.colorize-blue {
  filter: brightness(0.5) sepia(1) hue-rotate(140deg) saturate(6);
}

S
Sethu Sathyan

简单地改变 svg 的颜色:

转到 svg 文件并在样式下,在填充中提及颜色。

<style>.cls-1{fill:#FFFFFF;}</style>

this answer 已建议
M
Michael Philips

定位 svg 中的路径:

<svg>
   <path>....
</svg>

你可以做内联,比如:

<path fill="#ccc">

或者

svg{
   path{
        fill: #ccc

S
Sarang Kakkoth

要更改 SVG 元素的颜色,我在检查下面的 Google 搜索框搜索图标时找到了一种方法:

.search_icon { 颜色:红色;填充:当前颜色;显示:内联块;宽度:100px;高度:100px; }

我已将 span 元素与“display:inline-block”、高度、宽度和设置特定样式“color:red;fill:currentColor;”一起使用到由子 svg 元素继承的跨度标记。


这是最好的答案。将 svg 包装在 span 或 div 中并将 fill: currentColor; 应用于它是关键。
c
cydoc

如果您使用一些技巧,您可以使用 css 更改 SVG 着色。我为此写了一个小脚本。

浏览具有 svg 图像的元素列表

将 svg 文件加载为 xml

仅获取 svg 部分

改变路径的颜色

将 src 替换为修改后的 svg 作为内联图像

$('img.svg-changeable').each(function () {
  var $e = $(this);
  var imgURL = $e.prop('src');

  $.get(imgURL, function (data) {
    // Get the SVG tag, ignore the rest
    var $svg = $(data).find('svg');

    // change the color
    $svg.find('path').attr('fill', '#000');

    $e.prop('src', "data:image/svg+xml;base64," + window.btoa($svg.prop('outerHTML')));
  });

});

上面的代码可能无法正常工作,我已经为具有 svg 背景图像的元素实现了这一点,其工作方式几乎与此类似。但无论如何,您必须修改此脚本以适合您的情况。希望它有所帮助。


顺便说一句:如果您是 RoR 开发人员,您可以为 sass 预编译器添加一个新方法,它也可以完成这项工作。这要好得多,因为您将在编译的 css 文件中拥有 base64 编码的正确彩色图像。不再需要 JS!也许我可以提供我编写的代码,必须与 CTO 交谈。
+1 用于提供解决方案,而不是说它无法完成。这个答案也很相关:stackoverflow.com/questions/11978995/…
A
Ali Besharati

这里是速度与激情的方式:)

身体{背景颜色:#deff05; } SVG{ 宽度:30%;高度:自动; } SVG 路径 { 颜色:红色;填充:当前颜色; } < path d="M514.666,210.489L257.333,99.353L0,210.489l45.933,19.837v123.939h30V243.282l33.052,14.274v107.678l4.807,4.453 c2.011,1.862,50.328,45.625,143.542,45.625c93 .213,0,141.53-43.763,143.541-45.626l4.807-4.452V257.557L514.666,210.489z M257.333,132.031L439,210.489l-181.667,78.458L75.666,210.489L257.333,132.031z M375.681,351.432 c-13.205,9.572-53.167, 33.881-118.348,33.881c-65.23,0-105.203-24.345-118.348-33.875v-80.925l118.348,51.112l118.348-51.111 V351.432z">


为什么要投反对票!?这个效果很好,你可以在演示中看到它
您的回答与其他人相比没有任何解释:stackoverflow.com/a/20720935/3795597 stackoverflow.com/a/30419873/3795597 stackoverflow.com/a/69397734/3795597 和无数其他人。它仅适用于您将 svg 嵌入到主文档中。
V
Venteens Productions

更改 SVG 图像颜色的一种简单方法是使用过滤器属性。

过滤器生成器 here

原始 SVG:

过滤后的 SVG:

.change-my-color {滤镜:反转(21%)棕褐色(100%)饱和(3618%)色调旋转(102度)亮度(96%)对比度(108%); } .change-my-color2 {滤镜:反转(90%)棕褐色(93%)饱和(636%)色调旋转(338度)亮度(112%)对比度(102%); } .change-my-color3 { 滤镜:反转(71%)棕褐色(98%)饱和(1284%)色调旋转(164deg)亮度(100%)对比度(103%); } .change-my-color4 {滤镜:反转(23%)棕褐色(99%)饱和(2151%)色调旋转(258度)亮度(100%)对比度(112%); }


K
Kristiyan Tsvetanov

发现 this 个有用的 codepen。它要求一种颜色并生成一个适当的 CSS 过滤器来实现您的颜色。

例如:

filter: 'invert(48%) sepia(75%) saturate(1969%) hue-rotate(213deg) brightness(97%) contrast(87%)',

F
Flimm

例如,在您的 HTML 中:

<body>
  <svg viewBox="" width="" height="">
    <path id="struct1" fill="#xxxxxx" d="M203.3,71.6c-.........."></path>
  </svg>
</body>

使用 jQuery:

$("#struct1").css("fill","<desired colour>");

这仅在您在 HTML 中包含内联 SVG 文件时才有效。我已经编辑了你的答案以明确这一点。
M
MD SHAYON

方法一

简单有效的方法

使用任何文本编辑器打开您的 .svg 文件

<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" 
   xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
   viewBox="0 0 477.526 477.526" style="enable-background:new 0 0 477.526 477.526; 
   fill: rgb(109, 248, 248);" xml:space="preserve"> 
<svg />

给出一个样式属性并用颜色填充

另一种方式

在这里用你的形状填充颜色我有 rect 形状fill="white

<svg width="800" height="600" xmlns="http://www.w3.org/2000/svg">
      <g>
          <title>background</title>
          <rect fill="#fff" id="canvas_background" height="602" width="802" y="-1" 
           x="-1"/>
           <g display="none" overflow="visible" y="0" x="0" height="100%" width="100%" 
           id="canvasGrid">
              <rect fill="url(#gridpattern)" stroke-width="0" y="0" x="0" height="100%" 
              width="100%"/>
           </g>
       </g>
</svg>

D
Danny '365CSI' Engelman

2022 Web 组件 答案

文档:https://dev.to/dannyengelman/load-file-web-component-add-external-content-to-the-dom-1nd

customElements.define("load-file", class extends HTMLElement { // 将默认 connectedCallback 声明为同步,以便可以使用 await = this.getAttribute("src"), // 如果不存在 shadowRoot,则附加一个 shadowRoot(防止移动节点时显示错误) // 声明为参数以节省 4 个字节:'let' shadowRoot = this.shadowRoot || this.attachShadow( {mode:"open"}) ) { // 从 src="" 异步加载 SVG 文件,解析为文本,添加到 shadowRoot.innerHTML shadowRoot.innerHTML = await (await fetch(src)).text() // 追加可选 解析后来自 内部的元素 shadowRoot.append(...this.querySelectorAll("[shadowRoot]")) // 如果 "replaceWith" 属性 // 然后替换 < load-svg> 加载内容 // 包含子节点而不是子节点 #textNodes 还有 this.hasAttribute("replaceWith") && this.replaceWith(...shadowRoot.childNodes) } })


哇,这快速、简单并且实施问题为零(与其他解决方案相比,鉴于我的项目特征)。
O
OXiGEN

如果同一个 SVG 必须以不同的颜色多次使用,请在一个隐藏的 SVG 中定义一组路径,作为主副本。然后放置引用主路径的新实例及其各自的填充。

注意:此方法仅适用于内联 <svg> 标记。它不适用于加载 .svg 文件的 <img> 标记。

:root { 填充:灰色; } .hidden { 显示:无; } SVG { 宽度:1em;高度:1em; }


P
Peter Kionga-Kamau

如果您想对内联 svg 执行此操作,例如,您的 css 中的背景图像:

背景:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg'fill='rgba(31,159,215,1)'viewBox='. ..'/%3E%3C/svg%3E");

当然,将 ... 替换为您的内联图像代码


J
JamieGL

使用 svg <mask> 元素。

这比其他解决方案更好,因为:

与您的原始代码非常匹配。

在 IE 中工作!

嵌入的图像仍然可以是外部的、未修改的文件。

图像甚至不必是 SVG。

颜色继承自字体颜色,因此易于与文本一起使用。

颜色是一种普通的 CSS 颜色,不是过滤器的奇怪组合。

https://jsfiddle.net/jamiegl/5jaL0s1t/19/


效果很好!注意补充:svg 应该是白色的。
M
Mahdi Khansari

您可以使用字体图标在 SVG 上使用任何 CSS 选项

我正在寻找一种方法来获得任何 CSS 选项,比如 SVG 的动画,最后我用我的 SVG 生成了一个字体图标,然后在一个跨度内使用它(比如 FontAwesome),所以像着色这样的任何 CSS 选项都是上可用。

我使用 https://icomoon.io 将我的 SVG 转换为字体图标。然后你可以像在 HTML 元素中使用 FontAwesome 或 MaterialIcon 一样使用它。


P
Petr Tripolsky

实际上,有一个更灵活的解决方案来解决这个问题:编写一个 Web Component,它将在运行时将 SVG 修补为文本。还发布在 gist 中,带有指向 JSFiddle 的链接

👍滤镜:反转(42%)棕褐色(93%)饱和(1352%)色调旋转(87度)亮度(119%)对比度(119%);

<html>

<head>
  <title>SVG with color</title>
</head>

<body>
  <script>
    (function () {
      const createSvg = (color = '#ff9933') => `
          <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="76px" height="22px" viewBox="-0.5 -0.5 76 22">
            <defs/>
              <g>
                <ellipse cx="5" cy="10" rx="5" ry="5" fill="#ff9933" stroke="none" pointer-events="all"/>
                <ellipse cx="70" cy="10" rx="5" ry="5" fill="#ff9933" stroke="none" pointer-events="all"/>
                <path d="M 9.47 12.24 L 17.24 16.12 Q 25 20 30 13 L 32.5 9.5 Q 35 6 40 9 L 42.5 10.5 Q 45 12 50 6 L 52.5 3 Q 55 0 60.73 3.23 L 66.46 6.46" fill="none" stroke="#ff9933" stroke-miterlimit="10" pointer-events="stroke"/>
              </g>
          </svg>`.split('#ff9933').join(color);

      function SvgWithColor() {
        const div = Reflect.construct(HTMLElement, [], SvgWithColor);
        const color = div.hasAttribute('color') ? div.getAttribute('color') : 'cyan';
        div.innerHTML = createSvg(color);
        return div;
      }

      SvgWithColor.prototype = Object.create(HTMLElement.prototype);
      customElements.define('svg-with-color', SvgWithColor);

      document.body.innerHTML += `<svg-with-color
        color='magenta' 
      ></svg-with-color>`;

    })();

  </script>
</body>

</html>

S
Shabeer M

@Manish Menaria 的答案存在一些问题,如果我们转换白色,它会显示为灰色。

所以添加了一些调整,下面的例子专门展示了如何改变材质图标的颜色

<mat-icon class="draft-white" svgIcon="draft" aria-hidden="false"></mat-icon>


.draft-white{
    filter: brightness(0) invert(1);
}

o
omarjebari

一个好的方法是使用 mixin 来控制描边颜色和填充颜色。我的 svg 被用作图标。

@mixin icon($color, $hoverColor) {
    svg {
        fill: $color;

        circle, line, path {
            fill: $color
        }

        &:hover {
            fill: $hoverColor;

            circle, line, path {
                fill: $hoverColor;
            }
        }
    }
}

然后,您可以在 scss 中执行以下操作:

.container {
    @include icon(white, blue);
}

P
Prottay

如果您想使用 css 更改颜色,您还可以使用这样的在线工具:https://change-svg-color.vercel.app/


这个答案没有提供信息,它没有解释如何去做,也没有说明它是一个 svg 过滤器。最好对投票最多的答案发表评论并提供该工具的链接,这是 codepen 的替代品。
C
Chester Fung

如果要对 svg 的颜色进行编程,则不应直接在 svg 图像上设置颜色。

2021年可以用下面的css来做颜色变化。

html{ --iron-icon-fill-color-1:green; --铁图标填充颜色2:红色; --铁图标笔画颜色:白色; } svg#icon-green{ 填充:var(--iron-icon-fill-color-1, currentcolor); stroke: var(--iron-icon-stroke-color, none); } svg#icon-red{ 填充:var(--iron-icon-fill-color-2, currentcolor); stroke: var(--iron-icon-stroke-color, none); } svg#icon{ 填充:var(--iron-icon-fill-color-x, currentcolor);中风:白色; }


你不解释为什么。您所做的只是将 svg 内联为主 DOM 的一部分。
W
Wolfrevok Cats

最短的 Bootstrap 兼容方式,没有 JavaScript:

.cameraicon {
height: 1.6em;/* set your own icon size */
mask: url(/camera.svg); /* path to your image */
-webkit-mask: url(/camera.svg) no-repeat center;
}

并像这样使用它:

<td class="text-center">
    <div class="bg-secondary cameraicon"/><!-- "bg-secondary" sets actual color of your icon -->
</td>