当前位置: 首页 > 知识库问答 >
问题:

如何在Angular中更改svg元素的颜色?

孟凯泽
2023-03-14
<div class="svg1" aria-label="My icon"
   [inlineSVG]="'./assets/images/icons/ApplyIcon.svg'">
</div>
.svg1 {
  color: green;
}

此外,我尝试以以下方式使用对象标记:

<div class="col-2">
    <object
       id="svg1"
       data="./assets/images/icons/ApplyIcon.svg"
       type="image/svg+xml">
    </object>
</div>

但是,同样,如果我用CSS指令color:green;fill:green;将类应用到对象标记,则不会发生任何变化。有什么想法可以实现我想要的吗?

共有1个答案

秋博容
2023-03-14

在component.html文件中使用svg元素,并使用[ngClass]指令根据条件动态更改内部svg类。

示例:

component.ts

data.state = "New" || "In-Progress" || "Completed" // this changes dynamically based on the data
<svg <circle class="cls-3" [ngClass] = "{'New': 'blue', 'In-Progress':'orange','Completed':'green'}[data.state]" cx="8.21" cy="8.01" r="2.44" transform="translate(-3.22 8.89) rotate(-48.73)"/></svg> // inner class of svg element
.blue {
    fill:blue
}
.orange{
   fill: orange
}
.green {
   fill: green
}
 类似资料:
  • 问题内容: 我想使用这项技术并更改svg颜色,但到目前为止我还没有做到这一点。我把它放在css中,但是无论如何我的图像总是黑色的。我的代码: 问题答案: 您不能以这种方式更改图像的颜色。如果将SVG加载为图像,则无法在浏览器中使用CSS或Javascript更改其显示方式。 如果你想改变你的SVG图像,你必须用它来装载,或使用在线。 如果要使用页面中的技术,则需要Modernizr库,您可以在其中

  • 我想使用这种技术并更改SVG颜色,但到目前为止我还没能这样做。我把这个放在CSS中,但我的图像总是黑色的,不管怎么样。 我的代码: null null

  • 主要思想是,我正在寻找将SVG添加到伪元素的最佳方法,该伪元素仍然保持其颜色变化(用于悬停)。所有这些最好没有HTML,而绝对不是JS。我正在寻找一个更简单的插件类,这是他们那种只使用CSS的解决方案。 我在这里读到了一篇讨论:有没有办法在伪元素::before或::after中使用SVG作为内容 在这里,人们主要谈论的是将其添加为这样的内容: 内容:url(数据:图像/svg xml,xml版本

  • 问题内容: 我使用Angular-Chart.js(AngularJS Chart.js版本)创建条形图。图表使用颜色以外的选项。 即使我在文档中进行了设置,它们仍保持灰色。 实际上,这些选项有效,但颜色无效。难道我做错了什么? 问题答案: 您应该将对象声明为数组 plnkr

  • 问题内容: 我想使用CSS 更改标签的颜色。我在下面尝试过的代码似乎不起作用: 问题答案: 我想如果您打算更改tag 产生的线条的颜色,则应该使用而不是。 虽然,在注释中已指出,如果您更改线条的大小,边框仍将与样式中指定的宽度一样,并且线条将被填充为默认颜色(大多数情况下这不是理想的效果)时间)。因此,在这种情况下,您似乎还需要指定(如@Ibu在其答案中建议的那样)。 HTML 5 Boilerp

  • 我在我的网站上使用svg图标,想把它们的颜色改成红色(它们都是黑色的)。 我试着在img标签上使用css-fill属性,但它不起作用。然后我遇到了对象attr,并尝试使用svg图标,如下所示: 在这里,在对象上应用填充属性什么也不做。关于如何在不使用jQuery的情况下更改svg元素的填充属性的任何想法 JSFIDLE